多态
定义:某一类事物的多种存在形态。
例:动物里的猫,狗。
猫这个对象对应的类型是猫类型
猫x=new 猫();
同时猫也是动物中的一种,也可以把猫称为动物。
动物 y=new 猫();
动物是猫和狗具体事物中抽取出来的父类型。
父类型引用指向了子类对象。
对象的向上转型
Animal a=newDog();
对象的向下转型(向下转型必须先要向上转型)
Dog d=(Dog)a;
子类向上转型后的实例,不能访问子类特有的方法。
进行向下转型最好是先用instanceof判断下类型。
System.out,println(dog instanceof Dog);
System.out,println(dog instanceof Animal);
体现:父类或者接口的引用指向或者接收自己的子类对象。
作用:多态的存在提高了程序的扩展性和后期可维护性。
前提:需要存在继承或者实现关系。
要有覆盖操作。
成员函数:
编译时:要查看引用变量所属的类中是否有所调用的成员。
在运行时:要查看对象所属的类中是否有所调用的成员。
成员标量:
只看引用变量所属的类。