Вы не можете создать abstract
конструктор, но вот обходной путь, который вы можете сделать:
Реализовать abstract
класс со всеми конструкторами, которые вы хотите пользователю осуществить. В каждом из них у вас будет один оператор, который ссылается на метод abstract
этого класса, реализация которого будет в подклассе. Таким образом вы заставите пользователя предоставить тело для конструктора посредством реализации абстрактного метода. Например:
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);
}
В реализации, вы будете вынуждены обеспечить выполнение этих двух методов, которые могут представлять тела двух конструкторов:
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
}
}
Что Конструкторы вы хотите реализовать (и почему)? – ErstwhileIII
Пустой конструктор и конструктор копирования. Однако я поставил вопрос, потому что хочу знать в общих целях. – yonutix