方法重写是在继承中实现的一个方法,他依赖于继承。
在继承中,当一个类在类方法后使用extends继承另一个方法,那么使用extends的类为子类;被调用的类为父类。
那么既然子类能继承所有的父类方法,那么为了方便用户操作,子类也可以对父类中的方法进行“修改”,那就是所谓的方法重写。
子类在重写父类方法以后,子类会隐藏在父类中于其相同方法名的方法,意思是父类被隐藏方法不会再被执与调用。
方法名一致才可以重写到父类中指定的方法,而参数列表不一致的话就引出另一个知识点:方法的重载,参数列表不一致的话就相当于原方法被重载,虽然方法名还是一样,但是调用的已经是另一个方法了。参数列表一不一致只是变量的类型,而不是变量的名字,参数列表不一致包括(数据类型的顺序、数量、类型不一致)。
(throws子句不兼容父级)
修饰符 | 同一个类中 | 同一个包中 | 子类 | 不同包中 |
---|---|---|---|---|
public | Yes | Yes | Yes | Yes |
protected | Yes | Yes | Yes | |
default | Yes | Yes | ||
private | Yes |
如果子类重写的类的方法访问权限小于了父类被访问的类的方法方法权限就会报错Cannot reduce the visibility of the inherited method from Parent(无法降低从父级继承的方法的可见性)
(此文章灵感来自于:罗罗的1024)
本文地址:https://blog.csdn.net/qq_49249150/article/details/107391876
如对本文有疑问, 点击进行留言回复!!
[杭电多校2020]第一场 1004 Distinct Sub-palindromes
Swift -- 将本地生成的UIImage进行持久化保存(存到文件中fileManager.createFile)
网友评论