4

重複の可能性:
Java でインターフェースを実装するときに可視性を低下させる

私は明らかな何かを見逃しているに違いありませんが、私は得ています:

継承されたメソッドの可視性を減らすことはできません

そして、私は方法がわかりません。これは私のインターフェースです:

interface QueryBuilderPart {
    StringBuilder toStringBuilder();
}

そして、これは私の実装です:

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

クラスと実装の両方が同じパッケージに含まれています。何か案は?

4

1 に答える 1

14

デフォルトでは、インターフェイスのメソッドは ですがpublic、パッケージ レベルの可視性であるデフォルトの可視性に減らします。

したがって、次の 2 つのコード ブロックは同じです。

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 に答える