可能重复:
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();
}
}
编辑格式代码
答案 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类的实例,但您可以创建一个派生自抽象类的具体类的实例。