这两句话有什么区别:
AA- a subclass within the same package as the instance's superclass can override any superclass method that is not declared private or final.
BB- a subclass in a different package can only override the non-final methods declared public or protected.
我相信每个方法如果不是最终的,都可以从它的父类(super class)中重写
在java中,私有(private)方法是“自动最终的,并且对派生类隐藏”
在 Java 中,任何非静态方法都可以是 public、protected 或 private
因此,从 AA 句中我得出结论,只有公共(public)和 protected 父类(super class)的方法可以被重写
和句子BB相同
所以我很困惑这两个句子之间的区别是什么?
最佳答案
您的来源中的句子实际上有点不清楚。
句子 A 还包含默认声明的方法。这也称为“包私有(private)”。如果您只是在方法上省略访问修饰符,就会发生这种情况。
包外部的类将无法覆盖它们。
关于java - 同一包和不同包中的父类(super class)的子类有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31742698/