多态
多态是继封装,继承之后,面向对象的第三大特性.
三个条件
- 有继承或者实现(二选一)
- 方法的重写
- 父类引用指向子类对象
最终体现形式
//父类引用指向子类对象:
Fu f = new Zi();
多态中的成员特点
- 成员变量 : 编译看左边,运行也看左边;
- 成员方法 : 编译看左边,运行看右边.
原因 :
- 编译期间,编译器只认识左边 ,因为不知道创建的具体是什么对象.所以,只能看父类的.
- 运行期间,因为有方法的重写,所以对于方法来说,动态绑定.创建的是哪个子类,运行的就是哪个子类的方法.但是,成员变量没有重写的概念,所以,还是只能看左边的父类.
补充
- java编译器把java源码编译成字节码 (.class文件).
- jvm是在运行期将class文件编译成机器码文件.供程序运行.