class Zi extends Super
{
i = 4;
}
public class Question
{
public static void main(String args[])
{
Zi zi = new Zi();
System.out.println(zi.i);
}
}//这个无法编译通过
class Super{ int i = 5;
}
class Zi extends Super
{
void show()
{
i = 4;
}
}
public class Question
{
public static void main(String args[])
{
Zi zi = new Zi();
System.out.println(zi.i);
}
}//这个可以编译通过
class Zi extends Super
{
i = 4;
}
public class Question
{
public static void main(String args[])
{
Zi zi = new Zi();
System.out.println(zi.i);
}
这个相当于Zi里有两个I肯定编译失败,
class Zi extends Super
{
i = 4;
}
这样肯定有问题啊,实例化子类的时候,是不是首先通过子类构造函数去实例化父类,这样才可以访问父类的成员。
你现在直接在子类里面直接改变i的值,都没去实例化父类, 编译能通过么??肯定通不过
在方法里面能访问,是因为你调用子类的方法必须实例化子类,实例化子类他就会实例子类的父类,当然就可以访问了父类的成员。。。