为什么父类成员变量中:int num = 10;子类成员变量中不能直接num = 100;继承里面说,会继承父类的所有非私成员
2 回答
![?](http://img1.sycdn.imooc.com/54584cfb0001308402200220-100-100.jpg)
月落乌啼落日圆
TA贡献20条经验 获得超9个赞
子类是可以访问父类的非私有成员的,也可以对所继承的成员变量进行操作,但是像num = 100这样的执行语句是不能放在类中执行的,因为虚拟机无法得知该何时执行此语句,如果放到代码块,静态块,方法函数或者构造函数中就是正确的语句,也能正确的执行,你问的这个问题跟子类父类的没有关系.举个例子:
public class A { int num = 10; num = 100; }
上面的代码在编译时会报错,而如果改成下面这样则可以正确运行,num=100会在类初始化时执行.
public class A { int num = 10; { num = 100; } }
添加回答
举报
0/150
提交
取消