package imooc; // imooc包中
public class HelloWorld {
protected static int a=1;//protected不能被异包非子类调用
}
---------------------------------------------------------------------------
package imooc.second;// imooc.second包中
import imooc.HelloWorld;
public class Hello extends HelloWorld {
}
-------------------------------------------------------------------------
package imooc.second;// imooc.second包中
public class Hello2 {
public static void main(String[] args) {
System.out.println(Hello.a);
/*报错,提示要将HelloWorld类中protected修饰符改为public。如果Hello类中创建了属于Hello的类变
*量a,那么这里应该不会报错。但是这里报错说明Hello类中没有protected修饰的属于Hello类的类变量
*a。反而快速修改提示修正HelloWorld类中的修饰符为public,那么我有理由认为子类相当于一个中转
*站,并没有属于自己的成员。
*/
}
}这种理解对不对?子类与父类是集合中的包含关系,创建的子类并没有构造新的属于子类的成员(简单的继承,无override),而是相当于将父类中可继承的成员组合起来,形成的一个类。通过 子类名 调用任何成员,实际上指向的是父类的成员. 因此通过 子类名 调用成员,受制于父类中的访问修饰符。
添加回答
举报
0/150
提交
取消