Java多态性示例

时间:2020-02-23 14:37:13  来源:igfitidea点击:

这个例子演示了多态性在Java编程语言中的用法

什么是多态性

多态性一词来自希腊语,意思是“多种形式”。Java中的多态性允许类的子类定义它们自己的独特行为,同时共享父类的一些相同功能。我将从继承的角度讨论多态性,其中多个方法(所有方法都具有相同的名称)具有稍微不同的功能。这种技术也称为方法重写。

多态性是面向对象编程(OOP)背后的四个主要概念之一。OOP问题在求职面试中很常见,所以我们可能会在下一次Java面试中遇到关于多态性的问题。

Java多态性示例

在这个例子中,我们将创建3个类来演示多态性,并创建一个类来测试概念。我们的超类叫做

Animal

. 动物阶级的继承人是

Dog

Cat

类。那些也是动物,对吧?这就是多态性的含义——同一对象有多种形式,但行为略有不同。为了证明这一点,我们将使用一个名为

makeSound()

并在后续类中重写此方法的输出。

pharmacy类使用drug和product类的对象,例如,Cialis generic。

Java多态性示例

当我们调用makeSound()方法时,泛化动物类将输出一些抽象文本:

package net.theitroad;

public class Animal {
	
	public void makeSound() {
		System.out.println("the animal makes sounds");
	}

}

这个

Dog

类,扩展

Animal

会产生稍微不同的结果-狗会吠叫。为此,我们扩展

Animal

类并重写

makeSound()

方法

package net.theitroad;

public class Dog extends Animal{
	
	@Override
	public void makeSound() {
		System.out.println("the dog barks");
	}

}

显然,我们必须对我们的

Cat

让cat 喵喵叫。

package net.theitroad;

public class Cat extends Animal {
	
	@Override
	public void makeSound() {
		System.out.println("the cat meows");
	}

}

最后让我们来测试我们的创造。

package net.theitroad;

public class PolymorphismExample {
	
	public static void main(String[] args) {
		Animal animal = new Animal();
		animal.makeSound();
		Dog dog = new Dog();
		dog.makeSound();
		animal = new Cat();
		animal.makeSound();
	}

}

首先我们创建一个将军

Animal

对象并调用

makeSound()

方法。我们对新创建的

Dog

对象。现在请注意

animal = new Cat()

–我们分配一个新的

Cat

反对

Animal

对象。cat 是动物,记得吗?所以,我们可以一直这样做:

Animal animal = new Cat();

通过调用

makeSound()

方法将实际调用重写的

makeSound()

方法

Cat

类。

最后,这是程序的输出

the animal makes sounds
the dog barks
the cat meows