Java中方法重写(覆盖)Override

方法重写(Override):子类完全将父类的方法进行复制,书写新的逻辑,从而覆盖掉父类的方法,称之为方法重写。父类方法无法满足子类方法需求时,子类对父类方法具体实现根据子类需求进行更改

使用场景

  • 在业务代码中,父类相关方法不予具体实现或简单实现,具体实现由子类进行重写覆盖

  • 项目上线一段时间后,对项目进行维护升级或新增功能时父类方法具体实现无法满足当前已有子类或新增子类的功能时需要对父类方法进行重写

重写结构:

  • 访问修饰词:子类重写方法访问修饰词大于等于父类方法修饰词范围

  • 返回值类型:

    • 若父类方法返回值类型为基本数据类型,则子类重写时返回值类型必须跟父类一致

    • 若父类方法返回值类型为引用数据类型,则子类重写时返回值类型可以是父类引用数据类型或其子类

  • 方法名:必须与父类一致

  • 参数列表:必须与父类一致

  • 抛出异常:子类重写父类方法时抛出的异常只能比父类更少,不能更多。且异常类型必须是父类抛出的异常类型或其异常子类

重写方法或属性

  • 具体是调用父类方法还是子类重写的方法看具体创建的是父类还是子类对象(创建的哪个对象就调用哪个对象的方法)------看对象,即动态绑定

  • 具体是调用父类的属性值还是子类覆盖父类后的属性值看创建对象后接收的具体类型(接收的哪个类型就调用哪个类型的属性值)------看类型,即静态绑定

注意:

  • 静态方法不能被重写,具体调用哪个类的静态方法看接收的类型(哪个类调静态方法,就调用哪个类的静态方法)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值