首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

问一个关于protected修饰符的有关问题

2012-02-08 
问一个关于protected修饰符的问题。我学习了protected修饰符,父类中protected成员变量和方法可以被子类在包

问一个关于protected修饰符的问题。
我学习了protected修饰符,父类中protected成员变量和方法可以被子类在包外访问,但是下面这种情况是不是属于包外的子类呢:Base类为父类,在base包中;Sub类继承Base,在sub包中,没有问题;Sub类下面还定义了一个Suub类,也继承Base,但是不能调用Base的方法,代码如下
Base.java:
package demo;
import sub.Sub;
public class Base{
protected void ss(){
System.out.println("ss");
}
}
Sub.java:
package sub;
import demo.Base;

public class Sub extends Base{
public static void main(String[] args){
Sub s1 = new Sub();
s1.ss(); //Sub可以调用分类的方法
Suub s2=new Suub();
//s2.ss(); //Suub不能调用父类的方法
}
}
class Suub extends Base{

}

应该怎么解释呢?谢谢了

PS:晚上可能才能回来回复

[解决办法]
包外的子类可以访问,是指包外的子类自己的方法中可以访问
Suub s2=new Suub();
s2.ss(); //这个调用不是在Suub类的方法中,是在Sub类的方法中,所以不能直接调用

LZ再好好体会一下这其中的区别

Java code
class Suub extends Base{    public void xx() {        ss(); //这个是在Suub自己的方法中,所以可以调用,包外的子类可以访问指的是这个意思    }} 

热点排行