【发布时间】:2020-01-15 15:08:36
【问题描述】:
如果我有 A 类
public class A {
protected void show() {
}
}
另一个B类
public class B extends A {
}
驱动类:
public class Driver {
public static void main(String[] args) {
B b = new B();
b.show();
}
}
这东西很好用。但是为什么 Object 类中的 clone 方法会有所不同呢?如果我不使用 public 修饰符覆盖 clone 方法,我会收到如下错误:“clone has protected access in Object”。我们知道 Object 默认是所有类的父类。因此,这也应该与类 Driver、A 和 B 的工作方式相同。为什么不同?
【问题讨论】:
-
Driver和A在同一个包中吗? -
如果
A、B和Driver都驻留在不同的包中,那么b.show()也不会编译。我猜在你的例子中A和Driver在同一个包中,因此没有错误。 -
能否提供课程包?
标签: java overriding clone subclass protected