プログラミングの用語一覧へ
このページの目次

継承とは?

最終更新:2026/08/18

3秒でわかる

既存クラスの性質を引き継いで新しいクラスを作る仕組み。共通処理を親にまとめ、違う部分だけを子で上書きして書き分けられます。

もう少し詳しく

どういうものか

継承は、あるクラスのフィールドメソッドを別のクラスが引き継ぐ仕組みです。引き継ぐ側を子クラス (サブクラス)、引き継がれる側を親クラス (スーパークラス) と呼びます。Java では extends を書いて表します。子クラスは親のメソッドをそのまま使えるほか、同じ名前で定義し直して振る舞いを差し替えられます。これがオーバーライドで、親の変数に子のインスタンスを入れても、実際に動くのは子の実装になります。

なぜ必要か

社員クラスと管理職クラスのように、8 割が同じで 2 割だけ違うものを別々に書くと、共通部分の修正が 2 か所に散らばります。継承を使えば共通部分は親に 1 つだけ置き、違う部分だけ子で上書きできます。

もうひとつの効き目は、呼び出す側を書き換えずに種類を増やせることです。親の型で受け取って処理を書いておけば、子クラスを新しく追加しても呼び出し側のコードには手を入れずに済みます。

具体例

class Employee { protected String name; Employee(String name) { this.name = name; } int bonus() { return 100000; } } class Manager extends Employee { Manager(String name) { super(name); } @Override int bonus() { return 300000; } } Employee e = new Manager("佐藤"); System.out.println(e.bonus()); // 300000 が出る

変数の型は Employee なのに、実行されるのは Manager の bonus です。この呼び分けをポリモーフィズムと呼びます。

似た用語との違い

仕組み何を引き継ぐか多重に持てるか
継承 (extends)実装とフィールド1 つだけ
インタフェース (implements)仕様。既定実装は default のみいくつでも
コンポジション引き継がず、部品として持ついくつでも


近年は継承よりコンポジションが推奨される場面が増えています。親を変えると全部の子に影響が出るためで、is-a の関係 (管理職は社員である) が本当に成り立つときだけ継承を選びます。

つまずきやすいところ

子クラスのコンストラクタでは、親のコンストラクタが先に走ります。super() を明示しない場合は引数なしの親コンストラクタが呼ばれるため、親に引数なしのコンストラクタが無いとコンパイルが通りません。また、private のフィールドは継承しても子から直接触れません。子から使うなら protected にするか、親側にアクセサを用意します。

知識のつながり

サイドバーと同じ推奨ルート・関連語を、まとめて確認できます。

現在地継承プログラミング

LEARN BY DOING

この用語を、教材で使ってみる

直接関連する編と、その編を含むコースです。用語だけで終わらず、ブラウザ上で実際に手を動かせます。

この用語を扱うコース

コース

Java入門:基礎文法編

69レッスン
コース

Java Silver対策

55レッスン
コース

Java道場 ハレノヒ珈琲のレジを作る10問

10レッスン
Javaコースの全編を見る