1.多态数组:Java中的多态数组是指数组元素可以是不同类型的对象。在Java中,数组元素必须是同种类型,但是可以通过将数组元素定义为某个类的子类或者实现了某个接口的类,从而实现多态。
下面给出多态数组的代码,用于理解如何使用多态数组:
Person[] person = new Person[5];//数组对象
person[0] = new Person("ret",23);
person[1] = new Student("ret1",23,100);
person[2] = new Student("ret2",23,99);
person[3] = new Teacher("ret3",23,12000);
person[4] = new Teacher("ret4",23,11000);
for (int i = 0; i < person.length; i++) {
System.out.println(person[i].say());
if(person[i] instanceof Student){
((Student) person[i]).study();//study()方法是Student类中特有的方法,父类的引用无法访问,但是可以通过向下转型可以访问
}
if(person[i] instanceof Teacher){
((Teacher) person[i]).teach();//teach()方法是Teacher类中特有的方法,父类的引用无法访问,但是可以通过向下转型可以访问
}
}
2.多态参数:Java中的多态参数是指方法参数可以接收不同类型的对象。多态参数可以让方法具有更高的灵活性和通用性,可以接受更广泛的输入类型而不需要为每种类型写一个不同的方法。
看之前的文章----Java中的多态,为什么要用多态?多态的注意事项和细节。里面的feed()方法中就用到了多态参数。