Java接口的可见性降低,仅为NOT

Luc*_*cas 4 java interface class-visibility

可能重复:
在Java中实现接口时降低可见性

我必须遗漏一些明显的东西,但我得到了:

无法降低继承方法的可见性

我不知道怎么做.这是我的界面:

interface QueryBuilderPart {
    StringBuilder toStringBuilder();
}
Run Code Online (Sandbox Code Playgroud)

这是我的实施:

public class Stupid implements QueryBuilderPart {
    @Override
    StringBuilder toStringBuilder() {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

类和实现都在同一个包中.有任何想法吗?

Pau*_*Wee 14

默认情况下,接口的方法是public,但您将其减少到默认可见性,即包级别可见性.

所以以下两个代码块是相同的:

interface QueryBuilderPart {
    StringBuilder toStringBuilder();
}

interface QueryBuilderPart {
    public abstract StringBuilder toStringBuilder();
}
Run Code Online (Sandbox Code Playgroud)

请注意,接口的方法也是abstract如此

所以你应该这样做:

public class Stupid implements QueryBuilderPart {
    @Override
    public StringBuilder toStringBuilder() {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)