Java se 多态

多态的介绍(polymorphic)

1.前提:

  1. 必须有子父类继承或者多接口实现关系
  2. 必须有方法的重写
  3. 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

全部评论

相关推荐

04-10 08:33
苏州大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务