子类重写运行不出来

来源:9-2 Java 中的方法重写

一梦迁千寻

2015-11-30 15:37

不好意思,因为找不到问答的输入框就来这里问了。 问:我写的继承代码,为什么运行结果还是父类的,而重写的子类没有出来?代码如下,谢谢。 //父类 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();

}


}


写回答 关注

2回答

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

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

    Books book = new theCountOfMonteCristo();

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

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

    一梦迁千寻

    非常感谢!

    2015-12-06 10:16:55

    共 1 条回复 >

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

    568cd5b1000193ff05000251.jpg

    568cd5b10001e8c904820351.jpg

    568cd5b10001470405000239.jpg

    看我的

    吾怯二日

    这个怎么了 没什么问题啊

    2016-03-08 14:57:44

    共 1 条回复 >

Java入门第二季 升级版

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

530653 学习 · 6091 问题

查看课程

相似问题