在我正在读的一本java书中,一个练习程序采用了Object类中 protected clone()方法并重写了它。当他们这样做时,他们将可见性修饰符扩展到公共(public),以便它可以在任何包中使用。我很困惑为什么需要这样做。如果根据定义,一切都是 Object 的子类,并且在 Object 类中将方法声明为 protected。这是否意味着每个类(class)都可以访问它。重写方法时需要将方法公开吗?我很困惑。
最佳答案
您需要将其覆盖为公共(public),因为您可能希望从第三类调用它。假设您有一个 Base
类,它有一个覆盖方法 clone 的子类 Child
。现在我可能有如下第三堂课。
public class Third {
public void m1(Child c) {
Child d = c.clone();
}
}
这里,类,第三个正在调用clone方法,因此需要将其声明为public才能调用。
关于java - 重写clone()方法时,为什么需要将其声明为public?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54644213/