Java类和类之间的关系
类和类之间的关系
A is-a B(A是一个B) 泛化(继承 实现)
继承关系
- 子类想要继承父类,通过extends关键字来实现
- 子类继承了父类,可以调用父类中的(public protected)的属性和方法
2.1 构造方法严格意义来说 不算做子类继承过来,只是单纯的在子类调用构造方法时,默认调用父类的构造方法
2.2 程序块严格意义来说 不算做子类继承过来(子类自己调用不到 没名字),默认调用了父类的构造方法 父类构造方法之前自动执行父类的块 - 子类除了能继承父类的属性和方法之外,子类还可以添加自己独有的成员(属性和方法)
- 当父类继承过来的方法无法满足子类的需要,可以进行方法重写(override)
4.1 关于方法重写(override)和 方法重载(overload)区别
重写(override) | 重载(overload) | |
---|---|---|
类 | 继承关系两个类 | 一个类中的一组方法 |
权限 | final static abstract | |
父类是final 子类不能重写 | ||
父类是static 子类不存在重写 | ||
父类是abstract 子类必须重写 否则子类也得是抽象类 | ||
返回值 | 子类可以小于等于父类 | |
方法名 | 子类必须与父类一致 | 几个方法的名字必须一致 |
参数 | 子类必须与父类一致 | 几个方法的参数必须不一致(个数 类型 顺序) |
异常 | 继承关系两个类 | |
编译时,运行时 | ||
如果父类抛出运行时 子类可以不予理会 | ||
如果父类抛出编译时 子类抛出异常的(个数类型)要少于等于父类 |
-
每一个类都有继承,如果不写extends关键字,默认继承Object,如果写了extends则继承后面那个父类 可以理解为Object非常重要,是任何一个引用类型的父类(直接或间接的继承Object)Object没有父类
-
this与super关键字的区别
this和super都是替代对象
this替代的是执行属性或方法时的当前这个对象
super替代的是当前对象的父亲对象
this和super都可以调用一般属性或方法,放置在类成员的任意位置
方法之间是可以来回调用(编译好用),执行时注意StackOverflowError的问题
this和super都可以调用构造方法,只能放在另一个构造方法的第一行
当利用this或super调用构造方法时,他们两个不能同时出现(他们都想抢占第一行,冲突啦)
本文作者:HuangBingQuan
本文链接:https://www.cnblogs.com/bingquan1/p/17726662.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步