Wie kann ich die Definition eines Konstruktors in allen Unterklassen meiner abstrakten Klasse erzwingen?

Ich habe eine abstrakte Klasse A, die abstrakte Methoden definiert. Dies bedeutet, dass für eine instanziierbare Klasse alle abstrakten Methoden implementiert werden müssen.

Ich möchte, dass alle meine Unterklassen einen Konstruktor mit 2 ints als Parameter implementieren.

Deklarieren eines Konstruktors macht meinen Zweck zunichte, da der Konstruktor in Unterklassen definiert werden soll und ich nichts über die Implementierung weiß. Außerdem kann ich einen Konstruktor nicht als abstrakt deklarieren;

Gibt es eine Möglichkeit, dies zu tun?

Beispiel für was ich will:

Sagen wir, ich definiere die API einer Matrix-Klasse. In meinem Problem kann Matrix ihre Dimensionen nicht ändern.

Für die Erstellung einer Matrix muss deren Größe angegeben werden.

Hence, ich möchte, dass alle meine Implementierer dem Konstruktor die Größe als Parameter zur Verfügung stellen. Dieser Konstruktor ist durch das Problem und nicht durch ein Implementierungsproblem motiviert. Die Implementierung kann damit tun, was sie will, vorausgesetzt, die gesamte Semantik der Methoden wird beibehalten.

Nehmen wir an, ich möchte eine grundlegende Implementierung des @ bereitstelleinvert() Methode in meiner abstrakten Klasse. Diese Methode erzeugt eine neue Matrix mitthis invertierte Dimensionen. Genauer gesagt wird, wie in der abstrakten Klasse definiert, eine neue Instanz derselben Klasse wie @ erstellthis mit einem Konstruktor, der zwei Ints benötigt. Da die Instanz nicht bekannt ist, wird Reflection (getDefinedConstructor) verwendet, und ich möchte einen Weg finden, um zu gewährleisten, dass ich sie bekomme und dass sie für die Implementierung von Bedeutung ist.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage