clone()方法引发的对protected权限修饰符的思考

参考链接:https://blog.csdn.net/asahinokawa/article/details/80777302

在《Java核心技术卷》中看到一句话

Object类中的clone方法声明为protected,所以你的代码不能直接调用anObject.clone()。但是,不是所有的子类都可以访问受保护的方法吗?不是所以的类都是Object的子类吗?辛运的是,受保护访问的规则比较微妙。子类只能调用受保护的clone方法来克隆它自己的对象。必须重新定义clone为public才能允许所有方法可隆对象。

一时间没想明白,参考链接中的解释让我明白了,记录一下:

1.父类的protected成员是包内可见的,并且对子类可见

2.若子类与父类不在同一包中,那么在子类中,子类实例可以访问其从父类继承而来的protected方法,而不能访问父类实例的protected方法

posted @ 2020-12-13 16:12  White_白  阅读(221)  评论(0编辑  收藏  举报