protected访问权限又理解了一上
protected访问权限又理解了一下
看java的克隆时遇到问题 不能直接调用Object类的clone()方法,感觉很纳闷,提示方法不可见
有查看了一下protected访问权限
1同类 2同包 3 子类(不同包)
明明子类也是可以的。一般的类都是默认继承object的,所以应该可以调用clone()方法
第一、2条都好理解
第3条子类中:应该具体解释为子类可以调用自己从父类中继承的父类的protected方法。但是还是不能调用父类自己的
protected的方法,这里的父类是指父类实例。因为这样的话违反了第2条同包的原则。
举个至简例子:
看java的克隆时遇到问题 不能直接调用Object类的clone()方法,感觉很纳闷,提示方法不可见
有查看了一下protected访问权限
1同类 2同包 3 子类(不同包)
明明子类也是可以的。一般的类都是默认继承object的,所以应该可以调用clone()方法
第一、2条都好理解
第3条子类中:应该具体解释为子类可以调用自己从父类中继承的父类的protected方法。但是还是不能调用父类自己的
protected的方法,这里的父类是指父类实例。因为这样的话违反了第2条同包的原则。
举个至简例子:
public class A extends Object{ public static void main(String[] args) { A a = new A(); try { /* * protected方法(clone())从object继承而来, * 这里是子类A自己已经用有clone()方法,所以可以调用 */ a.clone(); } catch (Exception e) { e.printStackTrace(); } Object o = new Object(); /* * 这里的o是父类Object的实例,调用clone()会有编译错误, * 虽然是在自己的子类中但是实例还是父类,他的调用权限最大还是在自己的包中, * 即lang包 */ o.clone();//The method clone() from the type Object is not visible } }
1 楼
eve
2011-06-30
这个还真没注意,8错