黑马程序员技术交流社区

标题: 一个小问题 [打印本页]

作者: 马上都有    时间: 2014-5-20 20:12
标题: 一个小问题
本帖最后由 SyouRai_Tsk 于 2014-5-20 20:22 编辑
  1. public class PolyTest
  2. {
  3.         public static void main(String[] args)
  4.         {               
  5.                 Child child = new Child();  疑问2 new出来一个  不就已经调用了类得构造方法  为什么 还要调用child.sing()
  6.                 child.sing();  没有此行什么也不打印  为什么,额??
  7.         }
  8. }

  9. class Parent
  10. {
  11.         public void sing()
  12.         {
  13.                 System.out.println("parent is singing");
  14.         }
  15. }

  16. class Child extends Parent
  17. {
  18.         public void sing()
  19.         {
  20.                 System.out.println("child is singing");
  21.         }
  22. }
复制代码
运行结果是:child is singing     运行结果为什么不是parent is singing  child is singing

作者: 该死的温柔    时间: 2014-5-20 23:01
用虚方法重写父类的方法
作者: 肥洋洋    时间: 2014-5-20 23:09
Child child = new Child();只是创建了一个名为child的对象,child.sing()才是调用Child类。child.sing();调用了Child类,Child类继承了父类父类中的sing(),被子类重写。如果你要输出parent is singing  child is singing,主函数中应该写Parent P=new Parent();
  P.sing();
作者: 小叔    时间: 2014-5-21 15:05
复写了父类方法  把父类的方法覆盖了 不是综合了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2