java - 你能重写一个父类(super class)的方法并且……

标签 java

更改访问修饰符

  • 从公共(public)到私有(private)
  • 从私有(private)到公共(public)

更改 throw 子句

  • 更多异常(exception)情况
  • 更少的异常(exception)

改变返回类型

  • 一个子类型
  • super 类型

拜托,有人能解释一下吗?

最佳答案

以下是重写的一些规则:

  • 更改访问修饰符

    你不能降低可见度

    因为当您由于可见性下降而无法访问子类的重载方法时,它会在运行时破坏整个事情。

    假设该方法在父类(super class)中是公共(public)的,并且您在子类中覆盖时将其更改为私有(private),但由于您有父类(super class)的引用,因此编译器不会报错,但在运行时它会崩溃。

  • 修改throw子句

    你不能抛出较新的已检查或更广泛的异常

    同样的事情也适用于此,因为编译器会寻找父类(super class)方法进行抛出,但如果在运行时子类抛出新的或更广泛的异常,那么谁负责处理所有应该捕获的新检查异常编译时间。

  • 更改返回类型

    只有 Covariant return type支持

    注意:协变返回类型,意味着返回类型允许与子类同向变化。

关于java - 你能重写一个父类(super class)的方法并且……,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26781825/

相关文章:

java - 如何将字符串转换为xml公历日期java

java - 输入行号时识别 jtextpane 中的行

java - Hibernate 反射在保存时失败

java - 具有多个参数的Spring数据jpa连接查询

Java:优化游戏中的算法

java - 用逗号将整数转换为字符串数千

java - Java 中关联数组结构的最佳实践(与 PHP 相比)

java - Maven - 不要在最终的 WAR 中包含 src/main/webapp 的某个子目录

java - 在运行时拦截方法以返回类实例

Java:向上转换为父类(super class)并从子类调用函数