8.4
认识多态:
同类型的对象,表现出的不同形态
多态的表现形式:
父类类型 对象名称 = 子类对象;
多态的前提:
有继承关系
有父类引用指向子类对象: Fu f = new Zi();
有方法重写
多态的好处:
使用父类类型作为参数,可以接收所有子类对象
体现多态的扩展性与便利
基本练习:
多态中调用成员的特点:
变量调用: 编译看左边,运行也看左边
编译看左边: javac编译代码的时候,会看左边的父类中有没有这个变量,如果有,编译成功,如果没有编译失败。
运行也看左边: java运行代码的时候,实际获取的就是左边父类中成员变量的值
方法调用: 编译看左边,运行看右边
编译看左边: javac编译代码的时候,会看左边的父类中有没有这个方法,如果有,编译成功,如果没有编译失败。
运行看右边: java运行代码的时候,实际上运行的是子类中的方法。
多态的优势和弊端:
多态的优势:
在多态形式下,右边对象可以实现解耦合,便于扩展和维护
Person p =new student ();
p.work(); //业务逻辑发生改变时,后续代码无需修改
定义方法的时候,使用父类型作为参数,可以接收所有子类对象,体现多态的扩展性与便利。
多态的弊端:
不能调用子类的特有功能
报错的原因:
当调用成员方法的时候,编译看左边,运行看右边。
那么在编译的时候会先检查左边的父类中有没有这个方法,如果没有直接报错。
本文来自博客园,作者:suN(小硕),转载请注明原文链接:https://www.cnblogs.com/liushuosbkd2003/p/17608787.html