我试图找到一种方法来强制实现接口的用户,或者扩展一个类来创建几个构造函数.我认为这样做的一种方法是在抽象类中创建一个抽象构造函数,但我发现我不能这样做.
我该如何解决这个问题?是否有一些方法强制用户创建特定的构造函数?
谢谢!
您无法创建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);
}
Run Code Online (Sandbox Code Playgroud)
在实现中,您将被迫提供这两个方法的实现,这两个方法可以表示两个构造函数的主体:
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
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2679 次 |
| 最近记录: |