问答详情
源自:9-2 Java 中的方法重写

子类重写运行不出来

不好意思,因为找不到问答的输入框就来这里问了。 问:我写的继承代码,为什么运行结果还是父类的,而重写的子类没有出来?代码如下,谢谢。 //父类 package LEI; public class Books { public String name; public String author; public int num; public void read(){ System.out.println("书可以阅读!"); } }

//子类

package LEI;


public class theCountOfMonteCristo extends Books {

public void read(){

System.out.println("基督山伯基很精彩!");

}

}

//测试

package LEI;


public class Initial {


public static void main(String[] args) {

// TODO Auto-generated method stub

Books book=new Books();

book.name="The Count Of Monte Cristo";

book.author="Dumas";

book.num=15;

book.read();

}


}


提问者:一梦迁千寻 2015-11-30 15:37

个回答

  • sxian_wang
    2015-11-30 20:25:25
    已采纳

    因为你New的是父类对象,而不是子类对象,自然执行的是父类的read()方法。如果你这么写:

    Books book = new theCountOfMonteCristo();

    这时候book.read()才是子类重写的方法。

    建议:以后贴代码的时候不要这么贴,编辑器的左上角有个代码语言,你选择相对应的语言,把代码填到那个框框里。

  • mjzx5666371
    2016-01-06 16:52:34

    568cd5b1000193ff05000251.jpg

    568cd5b10001e8c904820351.jpg

    568cd5b10001470405000239.jpg

    看我的