Abstract Class中构造函数的用途是什么?

时间:2011-03-30 06:15:46

标签: java

  

可能重复:
  What is the use of creating a constructor for an abstract class in Java?

示例:

abstract public class AbstractDemo 
{
    private int ab;
    public AbstractDemo() 
    {
        ab=10;
    }

    public int getAb()
    {
        return ab;
    }

    public void abstractMethod()
    {
        //On the line below it gives error.
        AbstractDemo demo=new AbstractDemo();
    }

}

编辑格式代码

4 个答案:

答案 0 :(得分:2)

您无法创建抽象类的实例。构造函数就在那里,当你有一个实现它的类时,你可以调用它(隐式地,或者使用super.),你可以在那里放置应该在实例生成时执行的代码。

答案 1 :(得分:2)

在我看来,抽象类中的构造函数可以执行一些初始化工作,所有子类都不需要在自己的构造函数中重复。

答案 2 :(得分:1)

对代码的批评:

抽象基类(ABC)无法直接实例化 - 因此称为Abstract。因此,Java中的语法不正确:

AbstractDemo demo=new AbstractDemo();

您需要将其替换为其他内容,或完全删除该方法。

使用构造函数:

当您实例化一个继承自此抽象基类的类时,您可以调用抽象基类的构造函数来为ABC分配任何私有属性。

如:

public class DerivedDemo extends AbstractDemo {

    public DerivedDemo (int a, int b) {

        super(); //calls constructor
    }
}

答案 3 :(得分:0)

构造函数用于在创建该类的实例时初始化对象的字段。这与抽象类没什么不同。虽然您无法直接创建Abstract类的实例,但您可以创建一个派生自抽象类的具体类的实例。