Java基础学习08
多态的使用及细节(2023-01-28)
1.对象多态 :对象多态涉及到向上转型和向下转型,首先对象多态格式为 父类类型 父类引用 = new 子类(向上转型)运用此方法可以更方便维护代码
比如当需要向函数里面传入参数,而参数的类型是类的时候,可以通过向上转型的方法将所有的子类对象全部用父类代替
public void Action(Animal animal ,Food food)代替public voidAction(Dog dog ,Bone bone)。向上转型可以调用父类的所有成员,但是不能调用子类的特有成员
2.向下转型即类似于强转,当子类里面有一些特有的方法并且需要调用这些方法的时候就需要将父类强转为子类
Student student=(Student) persons[i];
3.AA instanceof BB 用来判断AA的运行类型(编译类型看等号左边,运行类型看右边)是不是BB类型或者BB的子类型
4.属性没有重写一说,属性的值看编译类型。
示例动态数组代码如下:
package JavaLearn.PolyArray01; public class PolyArray { public static void main(String[] args) { Person[] persons=new Person[5]; persons[0]=new Person("jack",20); persons[1]=new Student("tom",21,100); persons[2]=new Student("smith",22,56); persons[3]=new Teacher("scoot",35,20000); persons[4]=new Teacher("edith",65,30000); for(int i=0;i<5;i++){ System.out.println(persons[i].say()); if(persons[i] instanceof Student){ Student student=(Student) persons[i]; student.study(); }else if(persons[i] instanceof Teacher){ Teacher teacher=(Teacher) persons[i]; teacher.teach(); } } } }