Java参数 子类或者父类_Java方法重写注意事项,附带继承,子类与父类相关内容...

方法重写

继承(子类与父类)

方法重写是在继承中实现的一个方法,他依赖于继承。

在继承中,当一个类在类方法后使用extends继承另一个方法,那么使用extends的类为子类;被调用的类为父类。

736a28b07ef1ad116523ef5329cea795.png

1451c52e4e819f396f91575035a44092.png

子类继承父类的所有方法与成员变量(属性),意思就是在父类中的所有方法与成员变量都可以在子类中使用。

6afae16be7154b8c75ea7be206546d54.png

cc682001f78ecc25e7b1a9752122ac98.png

那么既然子类能继承所有的父类方法,那么为了方便用户操作,子类也可以对父类中的方法进行“修改”,那就是所谓的方法重写。

子类在重写父类方法以后,子类会隐藏在父类中于其相同方法名的方法,意思是父类被隐藏方法不会再被执与调用。

0940a0b0aaf85b83e5b85bc40fd02396.png

方法重写不得不注意的事项

1.方法名和参数列表必须一致

方法名一致才可以重写到父类中指定的方法,而参数列表不一致的话就引出另一个知识点:方法的重载,参数列表不一致的话就相当于原方法被重载,虽然方法名还是一样,但是调用的已经是另一个方法了。参数列表一不一致只是变量的类型,而不是变量的名字,参数列表不一致包括(数据类型的顺序、数量、类型不一致)。

2.子方法的异常跳出范围不能大于被重写的父类方法。

0a973906b42a7e5626893db5c6295f39.png

(throws子句不兼容父级)

3.子方法里面需要重写的方法访问权限,需要比父类方法里被重写的方法访问权限大。

修饰符

同一个类中

同一个包中

子类

不同包中

public

Yes

Yes

Yes

Yes

protected

Yes

Yes

Yes

default

Yes

Yes

private

Yes

如果子类重写的类的方法访问权限小于了父类被访问的类的方法方法权限就会报错Cannot reduce the visibility of the inherited method from Parent(无法降低从父级继承的方法的可见性)

cea5f44ae0857465b4af5859002e76d7.png

4.private(私有的)修饰类的话是不支持被继承的,所以无法重写private修饰的方法。static(静态的)修饰的方法也不能被重写。虽然在子类中可以存在与父类中private方法和static方法相同名称的方法,但是并不存在多态,所以并不是重写。

(此文章灵感来自于:罗罗的1024)

本文地址:https://blog.csdn.net/qq_49249150/article/details/107391876

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值