我经常创建一个基类(Activity
的大多数时基类),然后由我项目中的其他类扩展。
如何强制客户端实现某种方法?
我显然不能在不使整个类抽象的情况下只使用一个方法摘要。
答案 0 :(得分:2)
使课程抽象化。如果你想强制实现,你也不会想要实现基类的实例化。其他方法仍然可以具体实现,如下所示;
public abstract class ServerListHtml extends HttpServlet {
abstract public void foo();
public int concrete() {
return 0;
}
}
如果您需要基本的“默认”功能集,则可以定义自己的可实例化子类。
答案 1 :(得分:0)
创建Interface
。然后,如果有人想要使用它,他必须实现所有这些方法。在其他方面不能强制实施所有方法。
答案 2 :(得分:0)
要么为某些子类使用Interface
,要么你可能真的使Superclass
抽象强制每个子实例化它,使得超类不能真正实例化。
也许你应该从abstract class
寻找一个好的继承,或者真的考虑使用Interface
。