更改访问修饰符
- 从公共(public)到私有(private)
- 从私有(private)到公共(public)
更改 throw 子句
- 更多异常(exception)情况
- 更少的异常(exception)
改变返回类型
- 一个子类型
- super 类型
拜托,有人能解释一下吗?
最佳答案
以下是重写的一些规则:
更改访问修饰符
你不能降低可见度
因为当您由于可见性下降而无法访问子类的重载方法时,它会在运行时破坏整个事情。
假设该方法在父类(super class)中是公共(public)的,并且您在子类中覆盖时将其更改为私有(private),但由于您有父类(super class)的引用,因此编译器不会报错,但在运行时它会崩溃。
修改throw子句
你不能抛出较新的已检查或更广泛的异常
同样的事情也适用于此,因为编译器会寻找父类(super class)方法进行抛出,但如果在运行时子类抛出新的或更广泛的异常,那么谁负责处理所有应该捕获的新检查异常编译时间。
更改返回类型
注意:协变返回类型,意味着返回类型允许与子类同向变化。
关于java - 你能重写一个父类(super class)的方法并且……,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26781825/