带有子类的Java抽象类

时间:2012-12-17 08:40:31

标签: java abstract-class

    abstract class Shape{
       final int b = 20;
       public void display(){
         System.out.println("This is display method");
       }
       abstract public void calculateArea();
    }

    class Rectangle extends Shape{
       public static void main(String args[]){
          Rectangle obj = new Rectangle();
          obj.display();
         //obj.b=200;
      }
    }

当我执行此代码时,它输出“This is display method”但在子类I中为子类创建对象并调用父类方法。为什么要调用父类方法。

谢谢。

3 个答案:

答案 0 :(得分:3)

1)b在父类中是final。你无法改变价值。你会在这里得到编译错误。
2)子类中没有方法public void calculateArea()。你也会在这里得到编译错误 3)在您的代码中,方法void display()未被覆盖

答案 1 :(得分:0)

编译吗? (伊利亚完全正确)

顺便说一下,它调用了父方法,因为你没有在子类中重写它。

abstract class Shape {

    [...]

    public void display() { System.out.println("Parent"); }

}

public class Rectangle extends Shape {

   [...]

    @Override
    public void display() { System.out.println("Child"); }

    public static void main(String[] args)
    {
        new Rectangle().display();

    }

}

输出:

Child

答案 2 :(得分:0)

o / p没有错。 shape的公共方法是可访问的 长方形 http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html