定义:某一类事物的躲在存在形态
对象的向上转型
对象的向下转型(向下转型必须先要向上转型)
Animal a = new Dog();
Dog d = (Dog)a;
多态中,可以自动向上转型,如果要向下转型就必须先向上转型。
在多态中,子类向上转型的实例不能访问子类特有的方法。
体现:
父类或者接口的引用指向或者接收自己的子类对象。
作用:
多态的存在提高了程序的扩展性和后期可维护性
前提:
需要存在继承或者实现关系
要有覆盖操作
特点:
成员函数:
编译时:要查看引用变量所属的类中是否有所调用的成员。
在运行时:要查看对象所属的类中是否有所调用的成员。
成员变量:
只看引用变量所属的类
instanceof:
instanceof 在多态中进行向下转型最好是先用instanceof判断下类型。
类设计的注意事项:
类的设计主要是父类的设计。
子类永远不要去继承一个已经完全实现好了的类,因为一旦发生向上转型,所调用的方法,一定是被子类覆盖过的方法,所以只会继承抽象类或者是接口
抽象类和接口的区别:
抽象类是一个模版;
接口是一个标准。