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

来源:9-1 Java 中的继承

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;

}


写回答 关注

3回答

  • 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是继承了,可是子类又进行赋值,所以就。。。

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530560 学习 · 6091 问题

查看课程

相似问题