为什么父类成员变量中:int num = 10;子类成员变量中不能直接num = 100;继承里面说,会继承父类的所有非私成员
huucfjbcjf
浏览 1358回答 2
2回答
月落乌啼落日圆
子类是可以访问父类的非私有成员的,也可以对所继承的成员变量进行操作,但是像num = 100这样的执行语句是不能放在类中执行的,因为虚拟机无法得知该何时执行此语句,如果放到代码块,静态块,方法函数或者构造函数中就是正确的语句,也能正确的执行,你问的这个问题跟子类父类的没有关系.举个例子:public class A {
int num = 10;
num = 100;
}上面的代码在编译时会报错,而如果改成下面这样则可以正确运行,num=100会在类初始化时执行.public class A {
int num = 10;
{
num = 100;
}
}