Java的方法重写

本文深入探讨了Java中的方法重写,包括重写规则:方法名和参数列表必须相同,访问权限可以扩大但不能缩小,异常可以被缩小。重写的主要目的是为了子类定制或扩展父类功能。通过实例解析了如何使用Alt+Insert快捷键进行方法重写,并阐述了重写在实际编程中的应用场景和价值。

重写

需要有继承关系,子类重写父类的方法

  1. 方法名必须相同
  2. 参数列表必须相同
  3. 修饰符:范围可以扩大但不能缩小; public>protected>default(默认)>private
  4. 抛出异常:范围可以被缩小,但不能扩大; ClassNotFoundException > Exception(大)

重写,子类的方法必须与父类相同,方法体不同

为什么要重写?

1.父类的功能,子类不一定需要,或者不一定满足!

Alt+Insert : Override

遇见狂神说

### Java方法重写的规则 在 Java 编程中,方法重写是一项关键特性,允许子类重新定义父类中的同名方法。为了确保程序的正确性和一致性,Java方法重写设定了严格的规则。 #### 子类与父类的关系 只有当两个类之间存在继承关系时,才可能发生方法重写。即子类能够重写来自其直接或间接父类的方法[^1]。 #### 名称和签名的一致性 被重写方法必须具有相同的名称、返回类型(或兼容的协变返回类型)、参数列表以及抛出异常类型的匹配度。这意味着如果父类有一个不带任何参数并返回 `int` 类型的方法,则子类也应如此声明该函数[^2]。 #### 访问权限控制符的要求 通常来说,子类里用于覆盖的方法不能拥有更严格访问级别的修饰词;也就是说,假如父级成员是 public 或 protected 的话,在派生出来的类别里面就不能变成 private 。然而,反过来是可以接受的——更加宽松的可见级别是允许增加的[^3]。 #### 静态上下文中不允许发生覆写行为 静态方法属于编译期绑定,因此它们不会参与运行时期的动态分发机制,所以无法通过这种方式来改变原有功能的表现形式。同样地,final 关键字标记下的实体也不可再做进一步调整因为这代表最终版本不可更改[^4]。 ### 示例代码展示 下面给出一段简单的例子说明上述原则: ```java class Parent { // 定义了一个普通的实例方法 disp() void disp() { System.out.println("disp() method of parent class"); } } // 创建 Child 继承自 Parent 并尝试重载 disp 方法 public class Child extends Parent { @Override // 使用此注解表明我们正在执行的是方法重写操作而非意外创建新方法 void disp(){ super.disp(); // 调用父类版本的方法 System.out.println("disp() method overridden in child class"); } } ``` 在这个案例中,Child 类成功地实现了对 Parent 类中 disp 方法的有效重写,并且保留了原有的逻辑结构同时增加了新的输出语句[^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值