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

关于属性继承如下

public class car(){

int num;

String name;

public car(){

System.out.println("这个是父类的方法");

}

public class bus extends car{

public bus(){

System.out.println(name+"上乘坐"+num);

}

public class demo(){

car a=new bus();

a.num=10;

a.name="xiaomi";

}

}

问什么运行出来是name和num是空

}

正在回答

4 回答

很简单,这个题目出来的值为空,并不是因为赋值失败,而是因为构造函数先执行了,你创建对象的时候就执行构造函数,所以先Sys出属性值,当时还没有被复制,当然是初始值的空了。然后才执行到赋值。

解决的方法很简答, 你在 class car里再写一个方法

public void show(){

System.out.println(name+"上乘坐"+num);

}

然后主函数main 在最下面调用

a.show();

出来的就是:

xiaomi上乘坐10


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

价值0 提问者

非常感谢!
2017-02-03 回复 有任何疑惑可以回复我~

public class demo{

public static void main(String[] args)

{

        car1 a=new bus();

       

}

}


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

public class bus extends car1 

{

    public bus()

    {

super(14,"xiaomi");

        System.out.println(name+"上乘坐"+num);

    }

}


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

public class car1 

{

    int num;

    String name;

    public car1(int num,String name)

{

this.num=num;

this.name=name;

   

    System.out.println("这个是父类的方法"+name);

    }


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

举报

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

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

进入课程

关于属性继承如下

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