我有3节课.
public interface Operation {
void move();
void delete();
void search(String criteria);
}
public abstract class AbstractOperationProcessor implements Operation {
public void move() {
// some logic
}
}
public class DailyMailProcessor extends AbstractOperationProcessor{
// need to hide this method because I don't want to provide them to customer
public void delete() {}
public void search(String criteria) {}
}
Run Code Online (Sandbox Code Playgroud)
我需要的是隐藏方法delete()和search(String)API.如何在不改变界面Operation和抽象类的情况下完成它AbstractOperationProcessor?
你不能.你能做的最好的事情就是实现类似的东西NotImplementedException并记录这个事实.
我将此作为一个机会来检查顶级接口的定义.如果你需要隐藏它的一些方法,那么真正的问题可能是它聚合了不相关的功能.您可能需要将其拆分为两个单独的界面.
请记住,您可以"继承"(即实现)多个接口.