我是靠谱客的博主 狂野月亮,最近开发中收集的这篇文章主要介绍多态 Java,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

什么是多态

  • 生活中: 同一个动作在不同环境下表现出来的不同状态
  • Java中: 同一个方法在不同的对象中体现出来不同的状态
  • 内存中: 父类引用指向子类对象

多态实现的必要条件

  • 1.存在继承关系
  • 2.存在方法重写
  • 3.父类引用指向子类对象

多态访问成员的特点

成员变量:

编译时期:看左边的类型,如果左边类型中没有变量,编译报错
运行时期:看左边类型,左边类型的变量的值就是运行的结果
编译看左边,执行看左边

成员方法:

编译看左边,执行看右边

构造方法:

多态访问子类构造方法会先访问父类构造方法
帮助子类初始化父类继承过来的成员

静态方法:

编译看左边,执行看左边

多态的优点和缺点

多态的优点:

1.简化了代码。
2.提高了代码的可维护性和拓展性。
3.消除类型之间的耦合关系等。

多态的缺点:

使用父类引用无法访问子类所特有的方法.

多态缺点的解决方法:向下转型

向下转型
格式:<子类型> <引用变量名> = (<子类型> )<父类型的引用变量>;
特点:父类转为子类,父类引用转为子类对象。理解为强制类型转换
在向下转型的过程中,如果没有转换为真实子类类型,会出现类型转换异常

与向下转型相对应的:向上转型

向上转型
格式:<父类型> <引用变量名> = new <子类型>();
特点:子类转为父类
父类的引用指向子类对象。理解为自动进行类型转换
此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法
此时通过父类引用变量无法调用子类特有的属性和方法

最后

以上就是狂野月亮为你收集整理的多态 Java的全部内容,希望文章能够帮你解决多态 Java所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部