子类的实例是错误的

时间:2015-05-11 06:35:37

标签: java

根据java 7提到我们可以使用基类创建派生类实例。 但  它不工作我试图实现这个概念  所以我在这里提到我的代码...... 请提供解决方案并解决问题.... 这是错误

class A
{
     public void show()
     {
          System.out.println("A class");
     }
}
class B extends A
{
    public void display()
    {
          System.out.println("B class");
    }
}
class Demo
{
     public static void main(String args[])
     {
          B obj=new B();
          obj.display();
     }
}

2 个答案:

答案 0 :(得分:0)

如果obj的类型为B,就像在您发布的代码中一样,它不会给您一个错误,因为B包含方法display

但是,根据评论中的错误消息 - method display() location: variable obj of type A - 实际代码可能是:

A obj=new B();
obj.display();

编译无法编译,因为编译器确定编译时类型obj可以调用哪些方法,即A. A没有显示方法,除非显示方法,否则无法调用您明确地将obj投射到B

A obj=new B();
((B)obj).display();

答案 1 :(得分:0)

检查您的文件名。确保您的文件名是Demo.java ...因为当我编译并运行您的代码时,它可以工作。还要检查你的java路径。