java的继承
2021/9/23 22:11:17
本文主要是介绍java的继承,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
继承
1.java中是单继承的。每个子类只有一个父类。
语法:子类 extends 父类
2.在java中,即使没有声明父类,也有一个隐含的父类,就是Object类
3.在子类中可以使用super来调用父类的方法
4.继承中的构造方法问题
在new一个子类实例的过程中,会优先自动调用父类默认的无参数构造方法,然后再调用子类的构造方法。如果父类没有默认的构造方法,只有带参数的构造方法,此时就会出错。
除了由jvm自动调用父类默认的构造方法外,子类还可以可以通过super方法调用父类的构造方法,尤其是当父类没有默认的构造方法,只有带参数的构造方法的情况下,那么在子类中必须使用super的方式调用父类带参数的构造方法。
5.动态绑定和静态绑定
java的动态绑定和静态绑定
6.父子类型转换
向上类型转换:父类型的引用指向子类型的实例
Child c = new Child(); Parent p = c;
向下类型转换:在java中使用强制转换的方式实现向下类型转换,即父类型的变量可以赋值给子类型的变量,但是不一定每次向下类型转换都会成功,这取决于这个父类变量的动态类型(即引用的对象类型)是不是这个子类或者是这个子类的子类。
7.可见性重写
重写方法时,一般并不会修改方法的可见性。但是如果修改方法可见性的时候,那么重写时,子类的方法不能降低父类方法的可见性:如果父类中方法为public的,那么子类中的方法也必须为public的;如果父类中的方法为protected的,那么子类中的方法可以为protected,也可以为public的。
这是因为在java中继承是“is-a”的关系,即子类对象也属于父类。子类必须支持父类所有对外的行为。
8.使用final修饰的方式避免继承
final修饰类,表示该类不能被继承;final修饰非final中的方法,表示该方法不能在子类中被重写。
9.继承的优劣势
好处:实现代码复用,公共属性和方法放在父类中,子类只需要关注子类特有的就可以了。
不同子类的对象可以更方便地被统一处理(这里也有多态特性)。
缺点:继承破坏封装
如何避免使用继承?
(1)使用final关键字
(2)优先使用组合而非继承
(3)使用接口
这篇关于java的继承的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11有哪些好用的家政团队管理工具?
- 2025-01-11营销人必看的GTM五个指标
- 2025-01-11办公软件在直播电商前期筹划中的应用与推荐
- 2025-01-11提升组织效率:上级管理者如何优化跨部门任务分配
- 2025-01-11酒店精细化运营背后的协同工具支持
- 2025-01-11跨境电商选品全攻略:工具使用、市场数据与选品策略
- 2025-01-11数据驱动酒店管理:在线工具的核心价值解析
- 2025-01-11cursor试用出现:Too many free trial accounts used on this machine 的解决方法
- 2025-01-11百万架构师第十四课:源码分析:Spring 源码分析:深入分析IOC那些鲜为人知的细节|JavaGuide
- 2025-01-11不得不了解的高效AI办公工具API