【超やさしく解説】Javaの継承を「身近な例」でスッキリ理解!
こんにちは。ゆうせいです。
「継承」って言われると、どうしても「プログラミングっぽい」イメージで難しく感じちゃいますよね。でも、実は私たちの日常にも継承の考え方ってたくさんあるんです!
今回は、Javaの標準APIの中から、「誰でも使ったことがある身近なクラス」で、継承がどんなふうに使われているのか見てみましょう。
「文字列」は身近な例の宝庫:String
クラスと Object
クラス
Javaのプログラムで必ず登場すると言ってもいいクラスがあります。それが…
String str = "こんにちは";
この String
クラス、実は Javaのすべてのクラスの親である Object
クラスを継承しています!
public final class String extends Object
H3: Object
クラスとは?
Object
クラスは、Javaで作られるすべてのクラスの「ひいおじいちゃん」みたいな存在です。
たとえば、String
や Integer
、ArrayList
など、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()」を呼び出せる
- 数値の種類を意識せず、まとめて処理できる
- 共通の処理を親クラスに書いておけば、子クラスで何度も書く必要がない
つまり、再利用性が高まり、コードがスッキリするんですね。
まとめ
クラス名 | 親クラス | メモ |
---|---|---|
String | Object | 文字列のクラス。Objectを継承 |
Integer | Number | 整数のラッパークラス。数値系 |
Number | Object | 数値を表す親クラス |
今後の学習のヒント
継承をもっと実感したい方は、こんなことをやってみましょう!
Object
のメソッドをString
やInteger
で使ってみる- 自分でクラスを作って、
extends
を使ってみる instanceof
を使って、継承関係を調べてみる
次は、「継承」と「ポリモーフィズム(多態性)」の関係についても知ると、さらに理解が深まりますよ!
わかりやすい例をもっと知りたい方、どんどん質問してくださいね!
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール

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