如何在Java中隐藏父接口的方法?

Ale*_*lex 3 java oop

我有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

Jim*_*son 9

你不能.你能做的最好的事情就是实现类似的东西NotImplementedException并记录这个事实.

我将此作为一个机会来检查顶级接口的定义.如果你需要隐藏它的一些方法,那么真正的问题可能是它聚合了不相关的功能.您可能需要将其拆分为两个单独的界面.

请记住,您可以"继承"(即实现)多个接口.