-1

I often make a base class (most time base class for Activity) which is then extended by other classes in my project.

How can I force the clients to implement certain method?

I obviously cannot make just one method abstract without making the whole class abstract.

4

3 回答 3

2

使类抽象。如果你想强制实现,你无论如何都不想实例化基类。其他方法还是可以有具体实现的,如下;

public abstract class ServerListHtml extends HttpServlet {
    abstract public void foo();
    public int concrete() {
        return 0;
    }

}

然后,如果您需要一组基本的“默认”功能,您可以定义自己的可实例化子类。

于 2013-08-16T14:54:19.860 回答
0

要么对某些子类使用 an ,要么Interface你可能真的制作Superclass抽象来强制每个孩子实例化它,从而使超类不是真正可实例化的。

也许您应该从一个良好的继承中寻找abstract class或真正考虑使用一个Interface.

于 2013-08-16T14:54:53.587 回答
0

创建一个Interface. 然后,如果有人想使用它,他必须实现所有这些方法。在其他方面不能强制实现所有方法。

于 2013-08-16T14:54:01.067 回答