为了账号安全,请及时绑定邮箱和手机立即绑定

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;

}


正在回答

3 回答

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

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

0 回复 有任何疑惑可以回复我~

这就相当于重写吧

0 回复 有任何疑惑可以回复我~

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

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530553    人
  • 解答问题       6091    个

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

进入课程

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信