📅  最后修改于: 2023-12-03 15:36:47.693000             🧑  作者: Mango
在Java中,抽象类是一种不能被实例化的类,只有它的子类可以被实例化。Java的多态性允许子类对象被赋值给父类引用变量,从而实现了多态数组。本文将介绍具有抽象类Java的多态数组。
抽象类是一种不能被实例化的类,只有它的子类可以被实例化。抽象类通常用于封装类的通用行为,让子类根据自己的需要实现这些行为。
定义抽象类:
public abstract class Animal {
public abstract void sound();
}
Java的多态性允许子类对象被赋值给父类引用变量,从而实现了多态数组。多态数组可以容纳任何子类实例,而不必知道它具体是哪个子类实例。这种灵活性使得多态数组成为一种非常有用的编程技术。
定义多态数组:
Animal[] animals = new Animal[2];
animals[0] = new Cat();
animals[1] = new Dog();
以上代码创建了一个长度为2的Animal数组,其中包含一个Cat实例和一个Dog实例。由于Cat和Dog类都是Animal类的子类,因此它们可以被赋值给Animal类型的变量。
下面我们来看一个实际的例子,使用抽象类Java的多态数组来模拟一个动物园:
public class Zoo {
private Animal[] animals;
public Zoo(int size) {
animals = new Animal[size];
}
public void addAnimal(Animal animal) {
for (int i = 0; i < animals.length; i++) {
if (animals[i] == null) {
animals[i] = animal;
break;
}
}
}
public void makeSound() {
for (int i = 0; i < animals.length; i++) {
if (animals[i] != null) {
animals[i].sound();
}
}
}
public static void main(String[] args) {
Zoo zoo = new Zoo(3);
zoo.addAnimal(new Cat());
zoo.addAnimal(new Dog());
zoo.addAnimal(new Cow());
zoo.makeSound();
}
}
以上代码演示了如何使用Animal类型的数组来存储不同种类的动物。addAnimal方法用于将动物添加到动物园中,makeSound方法用于让动物发出声音。通过运行main方法,我们可以看到Cat发出了"喵~"声,Dog发出了"汪汪~"声,Cow发出了"哞~"声。
抽象类Java的多态数组是一种非常有用的编程技术,它允许我们使用父类类型的数组来存储各种子类类型的实例。这种技术提高了代码的灵活性和可维护性,值得我们深入学习和掌握。