软构复习之override注意事项

文章详细阐述了方法重写和重载的概念及规则,包括方法重写时需注意的方法签名、访问修饰符、异常处理和@Override注解的使用,以及重载时的方法名、参数列表差异。重写是子类对父类方法的定制,而重载在同一类中提供不同参数版本的方法。
摘要由CSDN通过智能技术生成

在进行方法重写时,有一些注意事项需要考虑:

1. 方法签名必须相同:重写方法的方法名、参数列表和返回类型都必须与被重写方法相同。否则,编译器将无法识别该方法为重写方法。

2. 访问修饰符不能更严格:重写方法的访问修饰符不能比被重写方法的访问修饰符更严格。例如,如果被重写方法是公共方法(public),那么重写方法不能是受保护方法(protected)或私有方法(private),但可以是公共方法或默认访问权限(包内可见)。

3. 子类方法不能抛出更宽泛的异常:如果被重写方法声明了异常,那么重写方法不能抛出比被重写方法声明的异常更宽泛的异常。子类方法可以不声明异常,或者声明与父类方法相同的异常,或者声明父类方法异常的子类型异常。

4. 父类方法必须可见:要重写父类方法,子类必须能够访问父类方法。如果父类方法是私有方法,子类无法访问,因此无法重写私有方法。

5. 方法重写是运行时多态的一种表现形式:重写方法是通过动态绑定在运行时确定调用的方法。这意味着,当通过父类引用调用重写方法时,实际上执行的是子类中重写的方法。

6. 使用`@Override`注解:为了提高代码的可读性和可维护性,建议在重写方法上使用`@Override`注解。这样可以明确标识该方法

 

重载(Overloading)和重写(Overriding)是面向对象编程中的两个重要概念,它们用于描述不同的代码行为和语义。

重载(Overloading)指的是在同一个类中定义多个同名方法,但它们的参数列表不同(参数的类型、个数或顺序不同)。重载方法具有相同的方法名,但是可以根据不同的参数类型或个数来执行不同的操作。重载方法通常用于提供一组具有相似功能但不同输入的方法。

重写(Overriding)指的是在子类中重新定义(覆盖)父类中已有的方法。子类可以通过重写方法来改变继承自父类的方法的实现细节,从而满足自己的需求。重写方法必须具有相同的方法签名(方法名、参数列表),并且访问修饰符要么相同,要么更宽松。

以下是重载和重写的区别:

1. 定义位置:重载方法定义在同一个类中,而重写方法定义在子类中。

2. 方法名和签名:重载方法具有相同的方法名,但是参数列表不同。重写方法具有相同的方法名和参数列表。

3. 功能和实现:重载方法通常用于提供一组具有相似功能但不同输入的方法。重写方法用于改变继承自父类的方法的实现细节,以满足子类的需求。

4. 静态和动态绑定:重载是静态绑定,编译器根据方法的参数类型在编译时确定要调用的方法。重写是动态绑定,方法的调用在运行时根据对象的实际类型确定。

总的来说,重载和重写是面向对象编程中常用的技术,用于实现代码的灵活性和复用性。重载方法提供了更灵活的方法调用方式,而重写方法允许子类定制和扩展父类的行为。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值