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