Object.clone()
大家可能不太理解由Object.clone()而引出的protected权限问题这句话,那我们先看一段代码:
第一个类CloneClassOne
package com.ustc.sup;
public class CloneClassOne {
}
第二个类CloneClassTwo
package com.ustc.sup;
public class CloneClassTwo {
public static void main(String[] args) {
// TODO Auto-generated method stub
CloneClassOne one=new CloneClassOne();
one.clone();
Object object = new Object();
object.clone();
}
}
大家觉得这段代码有没有错呢?
答案:
one.clone();和object.clone();这两句提示The method clone() from the type Object is not visible
我们会有疑问:Object类是所有类的父类,那么为什么子类不能访问父类的protected修饰的方法呢?
“与基类不在同一个包中的子类,只能访问自身从基类继承而来的受保护成员,而不能访问基类实例本身的受保护成员”
例如:
父类Person在包com.ustc.sub;
package com.ustc.sub;
public class Person {
protected int a = 4;
protected int getA() {
return a;
}
}
子类Manager 、Student在包com.ustc.sup
package com.ustc.sup;
import com.ustc.sub.Person;
public

本文详细解析了Java中Object类的protected权限问题,通过多个实例展示了与基类不在同一包中的子类如何访问受保护成员,以及在相同包中访问受保护成员的特性。同时,通过具体的代码示例,帮助读者理解protected修饰符的使用场景和限制。

336

被折叠的 条评论
为什么被折叠?



