26.多态的总结:多态有哪两种???运行时多态常见哪三种实现方式???运行时多态的前提是什么???多态中成员的访问特点是什么???多态的好处和弊端是什么???向上转型和向下转型的区别???
学习:第7遍
1.多态有哪两种???
第一种:编译时多态
实现方式:方法重载
第二种:运行时多态
直到系统运行时
才根据实际情况决定实现何种操作
实现方式:方法重写
2.运行时多态常见哪三种实现方式???
方式一:左边父类是普通类
右边子类是普通类
存在继承关系
Father father = new Son() ;
方式二:左边父类Animal类是抽象类
右边子类Cat是普通类
存在继承关系
Animal animal = new Cat();
方式三:左边CodeImpl 是接口
右边Student是实现了接口的普通类
存在实现关系
CodeImpl coder = new Student()
3.运行时多态的前提是什么???
一:有继承关系
二:有方法重写
三:有父类引用指向子类实例
4.多态中成员的访问特点是什么???
成员变量:编译看左边,执行看左边。
成员方法:编译看左边,执行看右边。
5.多态的好处和弊端是什么???
多态的好处:提高了程序的扩展性
具体体现:定义方法,使用父类型作为参数
将来调用时,调用具体的子类实例
多态的弊端:不能使用子类的特有功能
6.向上转型和向下转型的区别???
向上转型:
本质是子类转换为父类
是自动类型转换
父类引用指向子类实例
向下转型:
本质是父类转化为子类
是强制类型转换
前提用instanceof判断
是否可转换为指定子类