在Java中扩展抽象类

时间:2018-08-15 12:28:04

标签: java inheritance constructor abstract-class

是否可以创建一个具有抽象方法的抽象类,该抽象方法是其子类的构造函数?

例如。...

requests per unit of time

1 个答案:

答案 0 :(得分:0)

简单地:不。

您会看到,构造函数“看起来”像方法,但事实并非如此。有关此问题,请参见here

签名已经告诉您:您的抽象方法具有返回类型,而构造方法则没有。

如果您的问题是:抽象基类中是否有一种方法可以强制子类提供无参数的默认构造函数?答案再次是:不,那是不可能的。在Java中,您不能对子类实施此类约束。

您唯一可以做的就是这样:

 public abstract class Base {
   public abstract <? extends Base> newInstance();

或类似的东西。含义:您可以强制子类提供不带参数的方法,该方法返回子类的实例。