Java 不允许私有(private)或 protected 方法,那么我们如何确保双向接口(interface)的实现者调用必要的方法?
假设我们有一个 IModelListener 接口(interface),如下所示:
public interface IModelListener
{
public void handleChannelUpdate(int channel);
}
然后我们就有了一个 ViewControl 客户端,如下所示:
public class ViewControl implements IModelListener
只要我们记得让 ViewControl 调用此方法,ViewControl 对象就会起作用:
model.registerChannelListener(this);
如果 Java 允许接口(interface)中的 protected 或私有(private)方法,我们可以简单地将 IModelListener 修改为:
public interface IModelListener
{
public void handleChannelUpdate(int channel);
private void registerChannelListener( );
}
如何实现这一目标? 是否有注释可以做到这一点?
Java 不支持多重继承,因此如果客户端/实现者已经是派生类(典型),则不能选择使用抽象类。
感谢您的帮助, 杰夫
最佳答案
您可能错过了接口(interface)的概念。它不能包含私有(private)或 protected 方法,因为接口(interface)的作用是提供可访问的方法集。另一方面,您可能可能会看看抽象类。
您需要的可能是这样的:
public abstract class AbstractViewControler implements IModelListener {
protected abstract void registerChannelListener();
protected AbstractViewControler() {
this.registerChannelListener();
}
}
然后:
public class MyViewControler extends AbstractViewControler {
protected void registerChanelListener() {
//- Do what you need here.
}
}
然后就是:
IModelListener listner = new MyViewControler();
关于java - 我们如何使用 Java 接口(interface)强制执行双向接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22069400/