Java 継承完全ガイド:種類、構文、実践例
継承とは?
継承 は、あるクラスが別のクラスのフィールドとメソッドを獲得できるコアなオブジェクト指向概念です。子供が親から特徴を受け継ぐのと似ています。既存コードを再利用することで、再利用性を高め、保守を簡素化します。
このガイドでは以下をカバーします:
- Java の継承の種類
- Java での継承の仕組み
- ステップバイステップの Java 例
superキーワードの使用- 実世界の OOP シナリオ
継承の種類
Java はさまざまな継承パターンをサポートし、それぞれ異なる設計ニーズに適しています。
単一継承
1つのクラスが別のクラスを拡張し、シンプルな親子関係を形成します。
多重継承
Java 自体はクラスの多重継承を許可しませんが、インターフェースを使用する際に概念を理解しておくと役立ちます。
多段階継承
継承チェーンは複数レベルにわたることがあります:サブクラスがさらに別のクラスのスーパークラスになることができます。
階層的継承
1つのスーパークラスが複数のサブクラスを生み出せます。
ハイブリッド継承
ハイブリッド継承は単一継承と多重継承のパターンを組み合わせたものです。Java はクラスに対して直接サポートしませんが、インターフェースを使用して複雑な階層を設計する際に概念は有用です。
注意: Java はクラスに対するハイブリッド継承と多重継承をサポートしません。
Java における継承
Java では、Is-A 関係が継承によって表現されます。extends キーワードは、サブクラスがスーパークラスから継承することを示します。
典型的な構文:
class SubClass extends SuperClass {
// メソッドとフィールド
}
Java 継承の例
以下は継承の動作を示す簡潔な例です。
class Doctor {
void doctorDetails() {
System.out.println("Doctor Details...");
}
}
class Surgeon extends Doctor {
void surgeonDetails() {
System.out.println("Surgeon Detail...");
}
}
public class Hospital {
public static void main(String[] args) {
Surgeon s = new Surgeon();
s.doctorDetails();
s.surgeonDetails();
}
}
super キーワードの使用
super キーワードはスーパークラスのメンバーへのアクセスを提供し、this の親クラス版に相当します。
変数、メソッド、コンストラクタで使用できます。
構文例:
super.methodName();
実践シナリオ:銀行アプリケーション
複数の口座タイプをサポートする銀行アプリケーションを考えてみましょう。構造化アプローチでは、deposit や withdraw などの共通アクションのために個別の関数を書きます。
OOP では、共有振る舞いを含む基底 Account クラスを定義し、特定の口座タイプで拡張します。
オーバードラフト機能の追加
オーバードラフト機能の要件が追加されたとき、構造化コードでは既存関数の変更が必要です。一方、OOP ではテスト済みの基底コードに触れずに、独自の withdraw ロジックを実装した新しいサブクラスを作成できます。
クレジットカード口座の追加
同様に、独自の預け入れルールを持つクレジットカード口座の導入も OOP なら簡単です:基底クラスを拡張して特殊な振る舞いを持つ新しいサブクラスを作るだけです。
OOP における継承のメリット
継承は共有ロジックを親クラスに配置することでコード重複を排除します。子クラスは deposit と withdraw メソッドを継承し、保守オーバーヘッドを削減します。
Java
- C#インターフェース完全解説:定義、実装例、実践的活用法
- Java継承のマスター:概念、種類、実践例
- Java OOP概念:基礎、実例、利点を徹底解説
- OOPにおける抽象化マスター:Java抽象クラス&メソッド完全解説
- Javaカプセル化完全ガイド:実践例で理解するデータ隠蔽とアクセサ
- Java String.length()メソッド:文字列サイズ取得の実例解説
- Java String.charAt()完全解説:構文、戻り値、例外、実例
- Java String.contains()メソッド:部分文字列チェックの実践例
- Java String.endsWith()マスター:文字列サフィックスチェック実例付き
- Java BufferedReader でファイル読み込み:実践ガイドと例
- Javaで挿入ソート:わかりやすい例とステップバイステップガイド