qq_W_284
2018-04-28 23:24
package practice;
public class Why extends Q{
int a = 10;
void show() {
System.out.println(a);
}
public static void main(String[] args) {
Why w = new Why();
w.show();
}
}
class Q{
int a = 0;
}
子类继承父类后,创建的子类对象会在内存中开辟一块区域用于存放该对象的属性和方法地址,但这块区域被分成两块,一块用来存放从父类继承的属性和方法地址,一块用来存放子类独有的属性和方法地址(包括重写的方法)。
因此你创建的子类对象其实有两个变量a,如果你在show()方法里在输出super.a,就可以输出从父类继承的a的值。
这就相当于重写吧
是继承了,可是子类又进行赋值,所以就。。。
Java入门第二季 升级版
530560 学习 · 6091 问题
相似问题