【超やさしく解説】Javaの継承を「身近な例」でスッキリ理解!

こんにちは。ゆうせいです。

「継承」って言われると、どうしても「プログラミングっぽい」イメージで難しく感じちゃいますよね。でも、実は私たちの日常にも継承の考え方ってたくさんあるんです!

今回は、Javaの標準APIの中から、「誰でも使ったことがある身近なクラス」で、継承がどんなふうに使われているのか見てみましょう。

icon

https://icons8.jp


「文字列」は身近な例の宝庫:String クラスと Object クラス

Javaのプログラムで必ず登場すると言ってもいいクラスがあります。それが…

String str = "こんにちは";

この String クラス、実は Javaのすべてのクラスの親である Object クラスを継承しています!

public final class String extends Object


H3: Objectクラスとは?

Object クラスは、Javaで作られるすべてのクラスの「ひいおじいちゃん」みたいな存在です。

たとえば、StringIntegerArrayList など、Javaのほとんどのクラスは Object から継承されています。

この Object には、こんなメソッドがあります:

メソッド名説明
toString()そのオブジェクトを文字で表す
equals()2つのオブジェクトが等しいかどうかを調べる
hashCode()オブジェクトのハッシュ値を返す

H3: String クラスが受け継いでいる機能

例えば、toString() は本来 Object クラスで定義されているメソッドですが、String クラスでは「文字列としての意味を持つように」中身が書き換えられています(これを「オーバーライド」と言います)。

String str = "こんにちは";
System.out.println(str.toString()); // 結果:こんにちは

このように toString() をわざわざ呼び出さなくても、System.out.println(str); と書けば中で toString() が使われます。


H3: 例え話でイメージしよう!

  • Object クラスは「すべての家電の共通マニュアル」みたいなものです。
  • String クラスは「テレビ」。でも、そのテレビは「使い方」や「機能(toStringなど)」がテレビ用にカスタマイズされているんです。

だから、家電としての共通動作(電源オン・オフ)は使えるけど、表示機能はテレビ独自、みたいな感じ。


もうひとつの身近な例:Integer クラス

数字もよく使いますよね?

Integer num = 10;

この Integer もまた、Object クラスを継承しています。

public final class Integer extends Number

そして、Number クラス自体が Object を継承しています。

つまりこんな階層:

Object(大元)
  ↑
Number(数値の親クラス)
  ↑
Integer(整数)

この構造のおかげで、Javaでは int でも float でも double でも「数値」として一括で扱えるのです!


「継承」があるからこそ、便利になる!

継承があると、こういうことができます:

  • どんな型でも「toString()」を呼び出せる
  • 数値の種類を意識せず、まとめて処理できる
  • 共通の処理を親クラスに書いておけば、子クラスで何度も書く必要がない

つまり、再利用性が高まり、コードがスッキリするんですね。


まとめ

クラス名親クラスメモ
StringObject文字列のクラス。Objectを継承
IntegerNumber整数のラッパークラス。数値系
NumberObject数値を表す親クラス

今後の学習のヒント

継承をもっと実感したい方は、こんなことをやってみましょう!

  • Object のメソッドを StringInteger で使ってみる
  • 自分でクラスを作って、extends を使ってみる
  • instanceof を使って、継承関係を調べてみる

次は、「継承」と「ポリモーフィズム(多態性)」の関係についても知ると、さらに理解が深まりますよ!

わかりやすい例をもっと知りたい方、どんどん質問してくださいね!


セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。