Java 多态
Java 多态性
多态的意思是“多种形态”,当有很多通过继承关联起来的类时,就会发生多态性。
如上一章所述,继承可以从另一个类继承属性和方法,多态可以让这些方法执行不同的任务。
例如,考虑一个名为Animal
的父类,有一个名为animalSound()
的方法。Animal
的子类可以是猪类、猫类、狗类、鸟类,它们也有自己的animalSound()
方法(猪叫、猫叫等等):
示例
class Animal {
public void animalSound() {
System.out.println("动物发出声音");
}
}
class Pig extends Animal {
public void animalSound() {
System.out.println("小猪说: 呜呜");
}
}
class Dog extends Animal {
public void animalSound() {
System.out.println("狗说: 旺旺");
}
}
记住,在继承一章中介绍过,使用extends关键字来继承类。
现在我们可以创建Pig
和Dog
对象,并调用这两个对象的animalSound()
方法:
class Animal {
public void animalSound() {
System.out.println("动物发出声音");
}
}
class Pig extends Animal {
public void animalSound() {
System.out.println("小猪说: 呜呜");
}
}
class Dog extends Animal {
public void animalSound() {
System.out.println("狗说: 旺旺");
}
}
class MyMainClass {
public static void main(String[] args) {
Animal myAnimal = new Animal(); // 创建一个动物对象
Animal myPig = new Pig(); // 创建一个Pig对象
Animal myDog = new Dog(); // 创建一个Dog对象
myAnimal.animalSound();
myPig.animalSound();
myDog.animalSound();
}
}
为什么及何时使用“继承”和“多态性”?
“继承”和“多态性”对代码的可重用性很有用: 在创建新类时可以重用现有类的属性和方法。