Javaの継承とは? 初心者向けにextendsの使い方をわかりやすく解説

こんにちは! 内定者向けのJava Bronze受験対策で講師役の経験がある田口です。
 
AMG Solutionでは未経験者のプログラミング基礎学習として、Java SE Bronze合格のための勉強を取り入れています。未経験者にとっては初めて触れる概念が多く、苦戦するポイントも多々あります。
 
今回はつまずきやすいポイントである「継承」について、たくさんのイラストを用意してきました。オブジェクト指向はなんとなく分かるけど、継承がよくわからない……という方はここで克服しちゃいましょう!

継承とは

まずはChatGPTに「継承の意味を簡単に説明してください」と尋ねてみました。

継承とは、あるクラス(親クラス)の属性やメソッドを別のクラス(子クラス)が引き継ぐ仕組みのことです。これにより、子クラスは親クラスの機能を再利用したり、追加・変更することができます。

例えば、親クラスで定義された基本的な機能を子クラスに引き継ぎ、子クラスで特定の動作を追加・変更することができるため、コードの再利用が促進され、効率的な開発が可能になります。

……とのことです。いまいち分からないという方は次に行きましょう。

職人の師匠と弟子で例える

継承について調べると、親クラス・子クラスやスーパークラス・サブクラスといったワードが出てきます。ここで私がおすすめしたいイメージは「師匠と弟子」です。
 

師匠がある技術を持っていたとすれば、弟子は師匠の技術を受け継ぎます。そして、ゆくゆくはその弟子ならではの技も練り込まれていくでしょう。弟子は、師匠の持つ技を使ったり(親クラスの機能の再利用)、弟子独自の技を持ったり(機能の拡張)するのです。
 
なぜ継承が必要なのでしょうか。職人が師を持たずとも、各々が基礎機能を持てば良いのでは? 弟子がそれぞれの技を持たずとも、師匠が何でもできるようになればいいのでは? そう考えることもできますが、継承することで便利になる場面が多くあります。

コードの再利用

継承を活かす利点の一つに、コードの再利用があります。親クラスで定義された機能を、子クラスはそのまま使うことができます。再利用することで、クラスごとに同じ処理を書かずに済みます。また、共通処理に変更が入った場合でも、親クラスの修正一つで済むようになります。
 
師弟で考えてみましょう。弟子は師匠がいることで、基礎の技をそのまま教わることができます。一人だけで試行錯誤するよりも、早く身につけられます。
 

また、弟子が複数人いても同じ師匠から継承できます。そのため、どの弟子も師匠と同じ技術を身につけられます。
 

機能の拡張

継承には、機能の拡張ができるという利点もあります。親クラスの機能を持ちながら、子クラスで新しい機能を追加できます。これにより、既存のコードに影響を与えることなく、新しい機能や特性を加えられます。
 
師弟で見てみましょう。弟子は師匠の技術を継承しつつ、弟子独自の技も持つことができます。また、継承した技術に弟子独自のアレンジも加えられます。そうすることで、弟子の得意分野に応じた分業ができるようになります。
 

Javaで継承を使う方法

Javaでは、extendsを使ってクラスを継承します。
 
例えば、親クラスとなる「職人」クラスと、その職人を継承した「弟子」クラスを考えてみましょう。

class 職人 {
    void 剣をつくる() {
        System.out.println("剣をつくります");
    }
}

class 弟子 extends 職人 {
    void 斧をつくる() {
        System.out.println("斧をつくります");
    }
}

この例では、「弟子」クラスが「職人」クラスを継承しています。そのため、弟子クラスでは自分で定義した「斧をつくる」だけでなく、親クラスから継承した「剣をつくる」も利用できます。
 
このように、extendsを使うことで、既存のクラスが持っている機能を引き継ぎながら、新しい機能を追加できます。

Javaの継承で覚えておきたい用語

継承を学習すると、「親クラス」「子クラス」以外にもさまざまな用語が登場します。最初は混乱しやすいため、それぞれの意味を整理しておきましょう。
 

  • スーパークラス:継承される側のクラスです。親クラスとも呼ばれます。
  • サブクラス:スーパークラスを継承する側のクラスです。子クラスとも呼ばれます。
  • extends:クラスを継承するときに使用するキーワードです。
  • オーバーライド:親クラスから継承したメソッドを、子クラスで定義し直すことです。

まとめ

継承を使うことで、コードの再利用性が高まり、読みやすく、変更にも強い設計が可能になります。特にチーム開発では、共通の機能を親クラスにまとめることで、保守や拡張がしやすくなります。弟子が師匠の技を引き継ぐように、クラス間で機能を効率よく受け継げるのが継承の強みです。
 
this や super を使うことで、師匠と弟子をもっと使いこなせるようになるのですが……これはまたの機会に解説しようと思います。それでは!
 
 
 
 
《関連記事》

JavaのString.formatの使い方
技術
2025.3.14(Fri)

文字列を整形できる! JavaのString.formatの使い方

#まとめ#Java

Javaのabstractクラス
技術
2026.6.25(Thu)

Javaのabstractクラスとは? 使い方を具体例でわかりやすく解説【初心者・Bronze対策】

#Java#技術

JavaのStringとStringBuilderの違い
技術
2026.7.15(Wed)

【初心者向け】JavaのStringとStringBuilderの違いとは? 図で理解する参照の仕組み

#プログラム#Java

記事をシェア
MOST VIEWED ARTICLES