当前位置: 技术问答>java相关
为什么我无法使用一个类的protected方法。
来源: 互联网 发布时间:2015-11-01
本文导语: 如,image类的clone()方法,JTree类的getDecsendantToggled...()方法 | 自己,子类,同包的类可以。不同包的类不可以 | clone()这个方法是让你继承并实现他的 object里面并没有写,干嘛让你...
如,image类的clone()方法,JTree类的getDecsendantToggled...()方法
|
自己,子类,同包的类可以。不同包的类不可以
|
clone()这个方法是让你继承并实现他的
object里面并没有写,干嘛让你调
object里面并没有写,干嘛让你调
|
protected成员可以被其所在类的所有子类访问(在子类中),包括在其他包中的子类。但它对于包外代码的任意访问仍然是受保护的。
|
protected成员可以被本包内的所有类访问,在包外只有该类的子类才可以访问。
而且clone并不是Object提供的方法,支持clone的类需要继承Clonable接口,并自己提供clone方法
而且clone并不是Object提供的方法,支持clone的类需要继承Clonable接口,并自己提供clone方法
|
但是protected的含义是:
1.对于子类而言,相当于public,也就是说父类的protected成员子类可以访问.
2.但对外是相当于private的.也就是说你不能写
A a = new A();
B b = new B();
int x = a.i;//不能访问
int y = b.i//也不能访问.
我想引入protected的原因也就是,本来不想暴露出来,应该定义为private(在A中),但是,这样以来,子类(如B),要想访问很不方便.于是一个界乎于private和public之间的protected就有用了.
对外边来说,他和private一样,是不可以访问的.但在子类里边,就像public一样,可以直接访问.
可以看看
http://expert.csdn.net/Expert/topic/1048/1048247.xml?temp=.819668
1.对于子类而言,相当于public,也就是说父类的protected成员子类可以访问.
2.但对外是相当于private的.也就是说你不能写
A a = new A();
B b = new B();
int x = a.i;//不能访问
int y = b.i//也不能访问.
我想引入protected的原因也就是,本来不想暴露出来,应该定义为private(在A中),但是,这样以来,子类(如B),要想访问很不方便.于是一个界乎于private和public之间的protected就有用了.
对外边来说,他和private一样,是不可以访问的.但在子类里边,就像public一样,可以直接访问.
可以看看
http://expert.csdn.net/Expert/topic/1048/1048247.xml?temp=.819668