多态
多态:同一个对象,在不同时刻表现出来的不同形态
Java中多态的代码体现在一个子类对象(实现类对象)既可以给这个子类(实现类对象)引用变量赋值,又可以给这个子类(实现类对象)的父类(接口)变量赋值。
如Student类可以为Person类的子类。那么一个Student对象既可以赋值给一个Student类型的引用,也可以赋值给一个Person类型的引用。
最终多态体现为父类引用变量可以指向子类对象。
多态的前提是必须有子父类关系或者类实现接口关系,否则无法完成多态。
在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法。
多态的前提和实现
1 有继承或者实现关系
2有方法重写
3有父类引用指向子类对象
Animal a=new Cat();
多态中成员访问特点:
1 多态形式访问成员变量时 编译与运行的都是左边 即父类
1多态形式访问成员方法时 编译也看父类 运行时看右边 即子类
而为什么成员变量和成员方法访问不一样呢?
因为成员方法有重写,而成员变量没有重写