覆盖clone()方法时,为什么需要将其声明为public?

时间:2019-02-12 06:42:47

标签: java interface clone cloneable

在我正在阅读的Java书籍中,一个练习程序采用Object类中受保护的clone()方法并将其覆盖。当他们这样做时,他们将可见性修改器扩展为公共,以便可以在任何程序包中使用。我很困惑为什么需要这样做。如果按照定义,所有内容都是Object的子类,并且在Object类中声明一个受保护的方法。这是否意味着每个班级都可以使用它。重写该方法时需要公开什么?我很困惑。

1 个答案:

答案 0 :(得分:2)

您需要公开覆盖它,因为您可能希望从第三类调用它。假设您有一个JSON.parse()类,该子类具有一个覆盖方法克隆的子类Base。现在,我可能要上第三节课了。

Child

在这里,类,第三个正在调用克隆方法,因此需要将其声明为public才能被调用。