4

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

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

不能降低继承方法的可见性

我不明白怎么做。这是我的界面:

interface QueryBuilderPart {
    StringBuilder toStringBuilder();
}

这是我的实现:

public class Stupid implements QueryBuilderPart {
    @Override
    StringBuilder toStringBuilder() {
        return null;
    }
}

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

4

1 回答 1

14

默认情况下,接口的方法是public,但您将其降低为默认可见性,即包级别的可见性。

所以下面两段代码是一样的:

interface QueryBuilderPart {
    StringBuilder toStringBuilder();
}

interface QueryBuilderPart {
    public abstract StringBuilder toStringBuilder();
}

注意接口的方法abstract也是

因此,您应该执行以下操作:

public class Stupid implements QueryBuilderPart {
    @Override
    public StringBuilder toStringBuilder() {
        return null;
    }
}
于 2012-04-19T15:43:53.837 回答