HelloDemo demo = new Hello();这时的demo是HelloDemo类型的,它没有子类Hello的特征

解决方案 »

  1.   

    父类 HelloDemo.java 中没有print() 方法。HelloDemo demo = new Hello(); 此时 demo 为 HelloDemo 类型。
      

  2.   

    虽然它确实有 print() 方法,但是编译器不认。
      

  3.   

    对的 是打印不出来,编译也编译不过去,关键是HelloDemo里面没有print方法,也就是说demo.print(); 这地方就是错的
      

  4.   

    那如果假设子类没有printbb,那为什么还是能够调用到呢?
      

  5.   

    子类里拥有所有父类的方法,没写不是没有,写了是对父类同名方法的override
      

  6.   

     HelloDemo 这个父类有print方法吗?
      

  7.   


    HelloDemo 这个父类有print方法吗?
    楼主,还是没理解继承
      

  8.   

    你构建的是子类的对象,但是把他赋给了父类的引用,这在JAVA中称为向上转型。 转型之后父类对象只有父类的方法。。除了一种情况,就是父类的对象被子类重写,也就是你里面的PRINTBB()这个方法。。而在你的程序里,父类中并没有PRINT()方法,自然就无法输出!
      

  9.   

    你的子类class Hello
    是继承自HelloDemo
    而在你的父类中并没有定义print方法
    自然无法通过编译在eclipse下是这个结果
    Exception in thread "main" java.lang.Error: 无法解析的编译问题:
    没有为类型 HelloDemo 定义方法 print() at Hello.main(Hello.java:7)