Java se 多态
多态的介绍(polymorphic)
1.前提:
- 必须有子父类继承或者多接口实现关系
- 必须有方法的重写
- new对象:父类引用指向子类对象
Fu fu = new zi () -> 可以理解为一个大类型的数据接受一个类型的数据 -> 例 double b = 10(int)。
2.注意:
多态下不能直接调用子类特有功能(只能调用子类重写父类的成员)
多态条件下成员的访问特点
1.成员变量
成员变量看等号左边是谁,就是调用的谁的变量。
2.成员的方法
成员的方法看等号右边是谁,就是调用谁的方法。
多态方式和原始方式的优缺点
1.原始方式
优点:既可以调用重写的,也可以调用父类非私有的,还能调用自己特有的。
缺点:扩展性差
(形参传递子类类型,调用此方法子类类型只能接受它的唯一子类类型)
2.多态方式
优点:扩展性强
(形参传递父类类型,调用此方法父类类型可以接受任意它的子类类型)
缺点,不能直接调用子类特有功能
多态中的转型
1.向上转型
父类引用指向子类对象: Fu fu = new Zi ()
2.向下转型
子类引用指向父类对象:就是将大类型强转为子类类型
比如
Fu fu = new Zi () ;
Zi zi = (Zi)fu;//加(Zi)进行强转
优点:向下转型可以调用子类的特有功能。
3.类型转换异常以及解决方式:【ClassCastException】
原因:
Fu fu = new Zi() ;
fu = zi2 (另一个zi型的数据)
Zi zi = (Zi)fu;//加(Zi)给(Zi2)型的fu进行强转,会报错。
解决方法:
用 instanceof (其判断的结果是boolean型)
使用:对象名 instanceof 类型;
例如 if (fu instanceof Zi){Zi zi = (Zi)fu;}
Java后端学习路线 文章被收录于专栏
Java基础 MySQL