问答详情
源自:10-1 Java 中的多态

关于属性继承如下

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是空

}

提问者:价值0 2017-01-07 00:33

个回答

  • 挨踢大神
    2017-01-18 21:42:41
    已采纳

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

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

    public void show(){

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

    }

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

    a.show();

    出来的就是:

    xiaomi上乘坐10


  • 慕粉4057652
    2017-01-07 03:22:45

    public class demo{

    public static void main(String[] args)

    {

            car1 a=new bus();

           

    }

    }


  • 慕粉4057652
    2017-01-07 03:21:40

    public class bus extends car1 

    {

        public bus()

        {

    super(14,"xiaomi");

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

        }

    }


  • 慕粉4057652
    2017-01-07 03:20:55

    public class car1 

    {

        int num;

        String name;

        public car1(int num,String name)

    {

    this.num=num;

    this.name=name;

       

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

        }