概述
什么是多态
- 生活中: 同一个动作在不同环境下表现出来的不同状态
- Java中: 同一个方法在不同的对象中体现出来不同的状态
- 内存中: 父类引用指向子类对象
多态实现的必要条件
- 1.存在继承关系
- 2.存在方法重写
- 3.父类引用指向子类对象
多态访问成员的特点
成员变量:
编译时期:看左边的类型,如果左边类型中没有变量,编译报错
运行时期:看左边类型,左边类型的变量的值就是运行的结果
编译看左边,执行看左边
成员方法:
编译看左边,执行看右边
构造方法:
多态访问子类构造方法会先访问父类构造方法
帮助子类初始化父类继承过来的成员
静态方法:
编译看左边,执行看左边
多态的优点和缺点
多态的优点:
1.简化了代码。
2.提高了代码的可维护性和拓展性。
3.消除类型之间的耦合关系等。
多态的缺点:
使用父类引用无法访问子类所特有的方法.
多态缺点的解决方法:向下转型
向下转型
格式:<子类型> <引用变量名> = (<子类型> )<父类型的引用变量>;
特点:父类转为子类,父类引用转为子类对象。理解为强制类型转换
在向下转型的过程中,如果没有转换为真实子类类型,会出现类型转换异常
与向下转型相对应的:向上转型
向上转型
格式:<父类型> <引用变量名> = new <子类型>();
特点:子类转为父类
父类的引用指向子类对象。理解为自动进行类型转换
此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法
此时通过父类引用变量无法调用子类特有的属性和方法
最后
以上就是狂野月亮为你收集整理的多态 Java的全部内容,希望文章能够帮你解决多态 Java所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复