Sie können einen abstract
Konstruktor nicht schaffen, aber hier ist eine Abhilfe, die Sie tun können:
alle eine abstract
Klasse implementieren mit den Konstrukteuren Sie der Benutzer implementieren möchten. In jedem von ihnen haben Sie eine einzelne Anweisung, die sich auf eine abstract
-Methode aus dieser Klasse bezieht, die sich in der Unterklasse befindet. Auf diese Weise werden Sie den Benutzer zwingen, über die abstrakte Methodenimplementierung einen Körper für den Konstruktor bereitzustellen. Zum Beispiel:
public abstract class MyAbstractClass {
public MyAbstractClass(int param) {
method1(param);
}
public MyAbstractClass(int param, int anotherParam) {
method2(param, anotherParam);
}
protected abstract void method1(int param);
protected abstract void method2(int param, int anotherParam);
}
In der Implementierung werden Sie Umsetzung dieser beiden Methoden zur Verfügung zu stellen gezwungen, die die Körper der beiden Konstrukteure darstellen kann:
public class MyClass extends MyAbstractClass {
public MyClass(int param) {
super(param);
}
public MyClass(int param, int anotherParam) {
super(param, anotherParam);
}
public void method1(int param) {
//do something with the parameter
}
public void method2(int param, int anotherParam) {
//do something with the parameters
}
}
Welche Konstrukteure wollen Sie implementiert (und warum)? – ErstwhileIII
Ein leerer Konstruktor und ein Kopierkonstruktor. Jedoch stelle ich die Frage, weil ich für einen allgemeinen Zweck wissen möchte. – yonutix