すべてのJava学習者への挨拶!
Javaの例外は既知であるため、継承は、通常のクラスとは異なり、仕様を拡張するのではなく、仕様を絞り込むという要件に従います。
ブルース・エッケルの著書「Thinking in Java、4 ed。」は、例外の使用の制限について説明しています。
このコード例では、基本クラスからの継承と、インターフェイスの同時実装について説明します。どちらも、特異性は同じですが例外の仕様が異なるメソッドを持っています。 インターフェイスメソッドを実装する試みは、例外の仕様の拡張の防止を強調する基本クラスのメソッドを同時にオーバーライドする試みと交差します。 アイデアを伝える簡単なコード例:
class BaseBallException extends Exception{} class Foul extends BaseBallException{} class Strike extends BaseBallException{} abstract class Inning {
この例は、いくつかの興味深い組み合わせを行うことで、例外仕様の他のオプションで補足できます。
class BaseBallException extends Exception{} class Foul extends BaseBallException{} class Strike extends BaseBallException{} class LightStrike extends Strike{} class TwistedLightStrike extends LightStrike{} abstract class Inning {
明らかに、次のプロジェクトのクラス階層を設計するときに、上記の制限と機能を考慮する必要はありません。