一梦迁千寻
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();
}
}
因为你New的是父类对象,而不是子类对象,自然执行的是父类的read()方法。如果你这么写:
Books book = new theCountOfMonteCristo();
这时候book.read()才是子类重写的方法。
建议:以后贴代码的时候不要这么贴,编辑器的左上角有个代码语言,你选择相对应的语言,把代码填到那个框框里。
看我的
Java入门第二季 升级版
530562 学习 · 6091 问题
相似问题