Skip to content

Commit d4b5a20

Browse files
committed
Update b-1面试题总结-Java基础.md
1 parent b766597 commit d4b5a20

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

docs/b-1面试题总结-Java基础.md

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,10 @@ Constructor 不能被 override(重写),但是可以 overload(重载),所
118118

119119
### 10. 重载和重写的区别
120120

121+
>重载就是同样的一个方法能够根据输入数据的不同,做出不同的处理
122+
>
123+
>重写就是当子类继承自父类的相同方法,输入数据一样,但要做出有别于父类的响应时,你就要覆盖父类方法
124+
121125
#### 重载
122126

123127
发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同。
@@ -126,9 +130,28 @@ Constructor 不能被 override(重写),但是可以 overload(重载),所
126130

127131
![](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/bg/desktopjava核心技术-重载.jpg)
128132

133+
**综上:重载就是同一个类中多个同名方法根据不同的传参来执行不同的逻辑处理。**
134+
129135
#### 重写
130136

131-
重写是子类对父类的允许访问的方法的实现过程进行重新编写,发生在子类中,方法名、参数列表必须相同,返回值范围小于等于父类,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类。另外,如果父类方法访问修饰符为 private 则子类就不能重写该方法。**也就是说方法提供的行为改变,而方法的外貌并没有改变。**
137+
重写发生在运行期,是子类对父类的允许访问的方法的实现过程进行重新编写。
138+
139+
1. 返回值类型、方法名、参数列表必须相同,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类。
140+
2. 如果父类方法访问修饰符为 private/final/static 则子类就不能重写该方法,但是被 static 修饰的方法能够被再次声明。
141+
3. 构造方法无法被重写
142+
143+
**综上:重写就是子类对父类方法的重新改造,外部样子不能改变,内部逻辑可以改变**
144+
145+
**暖心的 Guide 哥最后再来个图标总结一下!**
146+
147+
| 区别点 | 重载方法 | 重写方法 |
148+
| :--------- | :------- | :--------------------------------------------- |
149+
| 发生范围 | 子类 | 同一个类中 |
150+
| 参数列表 | 必须修改 | 一定不能修改 |
151+
| 返回类型 | 可修改 | 一定不能修改 |
152+
| 异常 | 可修改 | 可以减少或删除,一定不能抛出新的或者更广的异常 |
153+
| 访问修饰符 | 可修改 | 一定不能做更严格的限制(可以降低限制) |
154+
| 发生阶段 | 运行期 | 编译器 |
132155

133156
### 11. Java 面向对象编程三大特性: 封装 继承 多态
134157

0 commit comments

Comments
 (0)