问答详情
源自:9-1 Java 中的继承

why继承q 变量不能继承吗? 为什么不报错

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;

}


提问者:qq_W_284 2018-04-28 23:24

个回答

  • F_ake
    2018-04-29 14:15:17
    已采纳

            子类继承父类后,创建的子类对象会在内存中开辟一块区域用于存放该对象的属性和方法地址,但这块区域被分成两块,一块用来存放从父类继承的属性和方法地址,一块用来存放子类独有的属性和方法地址(包括重写的方法)。

            因此你创建的子类对象其实有两个变量a,如果你在show()方法里在输出super.a,就可以输出从父类继承的a的值。

  • 想离开丶都难
    2018-06-24 00:00:23

    这就相当于重写吧

  • 学习骆驼
    2018-04-29 13:55:37

    https://img.mukewang.com/5ae55e2b000123ba02460046.jpg是继承了,可是子类又进行赋值,所以就。。。