如何强制在抽象类的所有子类中定义构造函数
我有一个定义抽象方法的抽象类A。这意味着,要使类具有可实例化性,必须实现所有抽象方法。
我希望我所有的子类都实现一个具有2 ints作为参数的构造函数。
声明构造函数违背了我的目的,因为我希望在子类中定义构造函数,而我对实现一无所知。此外,我不能将构造函数声明为抽象的;
有没有办法做到这一点?
我想要的例子:
假设我正在定义矩阵类的API。在我的问题中,Matrix无法改变它们的尺寸。
对于要创建的矩阵,我需要提供其大小。
因此,我希望我的所有实现器都为构造函数提供大小作为参数。此构造函数的动机是问题,而不是实现问题。实现可以使用这些操作,前提是保留所有方法的语义。
假设我想在我的抽象类中提供该方法的基本实现。此方法将创建一个具有倒排维度的新矩阵。更具体地说,由于它是在抽象类中定义的,它将使用采用两个 int 的构造函数创建与 相同类的新实例。由于它不知道实例,它将使用反射(getDefinedConstructor),我想要一种方法来警告我会得到它,并且它对实现是有意义的。invert()
this
this