public class Class1
{
protected int bb;
public int cc;
}
public class class2:Class1
{
public void foo()
{
//可得到base.bb,base.cc
Class1 c=new Class1();
//只能得到c.cc,不能访问受保护成员?
}
}
为什么在派生类中,只能通过base才能访问到基类的protected成员,直接创建基类对象就访问不到了?
问题补充: 另外,如果我创建了一个class2的对象,则可以通过该对象访问基类的受保护成员了.为什么创建class1的对象却不能访问class1自己的成员呢? public class class2:Class1 { protected void foo() { //可得到base.bb,base.cc class2 d=new class2(); //可得到d.bb,d.cc Class1 c=new Class1(); //只能得到c.cc,不能访问受保护成员? } } 另外,如果我在class2的外面创建一个class2的对象,这时又不能通过该对象访问基类的受保护成员了???
神不在的星期二
蓝山帝景
相关分类