Chapter 7
継承とポリモーフィズムの用語を順に解説します。
継承とは 継承(Inheritance)とは、既存のクラス(親クラス / スーパークラス)が持つフィールドやメソッドの定義を引き継ぎ、新しいクラス(子クラス / サブクラス)を作成するオブジェクト指向の機能です。 extends キーワードを用いて宣言します(例: class Child extends Parent)。 継承を行うことで、共通の処理を親クラスに集約してコードの重複を排除し、高い再利用性と拡張性を実現できます。 Javaにおけるクラスの継承は、1つの子クラスに対して親クラスは1つしか指定できない「単
オーバーライドとは オーバーライド(Override:メソッドの再定義)とは、親クラス(スーパークラス)で定義されているメソッドを、子クラス(サブクラス)において同じ名前・同じシグネチャで上書きし、子クラス固有の動作へと再定義する機能です。 親クラスの汎用的な処理を、子クラスの用途に合わせた具体的な処理へと差し替えるために使用されます。 メソッドの前に @Override アノテーションを付与することで、コンパイラにオーバーライドの意図を伝え、シグネチャのスペルミスなどを静的にチェックさせることができます。 同じク
ポリモーフィズムとは ポリモーフィズム(Polymorphism:多態性 / 多様性)とは、オブジェクト指向プログラミングの三大要素の1つであり、「同じ名前のメソッド呼び出し(メッセージ)に対して、呼び出し対象のオブジェクトの実体クラスに応じてそれぞれ異なる動作を実行する」性質のことです。 スーパークラスやインターフェース型の変数に対して、そのサブクラスや実装クラスのインスタンスを代入して統一的に取り扱うことで実現されます。 呼び出し側コードは具体的にどのサブクラスが動くかを細かく意識・分岐することなく、共通の型を
抽象クラスと抽象メソッドとは 抽象クラス(Abstract Class)および抽象メソッド(Abstract Method)とは、具体的な処理の内容をあえて記述せず、子クラスに対して「どのようなメソッドを実装すべきか」という枠組み(テンプレート)を強制するための文法構造です。 処理の本体(処理ブロック {})を持たないメソッドの宣言に abstract キーワードを付与したものを「抽象メソッド」と呼びます。 そして、1つ以上の抽象メソッドを含む(または継承ツリーの概念的な共通親とする)クラスには abstract
インターフェースとは インターフェース(Interface)とは、クラスが外部に対して公開する「操作の仕様(契約・型)」のみを定義するための完全な抽象化構造体です。 interface キーワードを用いて定義し、クラスへ適用する際は implements キーワードを使用します。 クラスの単一継承の制限を超えて、1つのクラスに「複数のインターフェースを同時に実装(多重実装)」させることができる点が最大の特長です。 Java 8以降、デフォルトメソッド(default)や static メソッド、さらにJava 9で
instanceofのパターンマッチングとは instanceofのパターンマッチングは、型判定が成功した範囲でキャスト済みのパターン変数を利用できるJava SE 17の機能です。 具体例 obj instanceof String s の条件が真なら、その条件が保証するスコープ内でs.length()を呼べます。判定後に別の明示的キャストを重ねる必要はありません。 もう少し詳しく この用語は単独で暗記せず、目的、入力、処理、結果、適用できない境界の順に説明できるようにします。実務では前提条件と評価基準を明記し、
sealedクラスとは sealedクラスとsealedインターフェースは、直接継承または実装できる型をpermitsで限定し、型階層を制御する仕組みです。 具体例 許可された直接サブタイプはfinal、sealed、non-sealedのいずれかを明示します。アクセス修飾子の制限やfinalクラスとは役割が異なります。 もう少し詳しく この用語は単独で暗記せず、目的、入力、処理、結果、適用できない境界の順に説明できるようにします。実務では前提条件と評価基準を明記し、期待した結果と実測結果を区別します。 似た用語を
インターフェースのdefaultメソッドとprivateメソッドとは defaultメソッドは実装を持つ継承可能なインスタンスメソッドで、privateメソッドはインターフェース内部の共通処理を隠蔽するために使います。 具体例 default同士が衝突する場合の解決規則と、privateメソッドを実装クラスから呼べない点を区別します。abstractメソッドやstaticメソッドとも修飾子の組合せが違います。 もう少し詳しく この用語は単独で暗記せず、目的、入力、処理、結果、適用できない境界の順に説明できるようにし
公式資料へのリンクと確認日を各記事に掲載しています。