私が合理的なアナロジーだと思うものを作るために、「飲み物」インターフェースがあるとします。私はそれを埋めたり、捨てたり、他のことをしたりできます。ストローを入れる前に、この飲み物を何人が飲んでいるかを知る必要があります. 当然、これは、drinkFromStraw() メソッドを使用する「OneStrawDrink」インターフェースと、drinkFromLeftStraw() および DrinkFromRightStraw() メソッドを使用する「TwoStrawDrink」インターフェースにつながります。飲み物の機能を変更する必要がある場合に備えて、これらのインターフェースの両方が飲み物インターフェースを拡張することを望みますが、「飲み物」インターフェースは方法を知らずに飲むことができないため、誰も実装できないようにしたいと思いますoneStrawDrink と twoStrawDrink は、パッケージ外の飲み物として認識される必要があります。したがって、drink インターフェイスを package-private のままにしておくことはオプションではありません。飲み物のインターフェースを実装不可能にすることは可能ですか? または、必要な機能を得るためにこれを再構築する必要がありますか?