もうすぐハロウィンですね。
ハロウィンにちなんで、誰かが玄関を訪ねてくるシチュエーションをJavaのクラスの継承を使って再現してみました。
今回はそちらを使ってクラスの継承の基本を説明したいと思います。
クラスの継承とは
クラスの中身である変数や機能を他のクラスが引き継ぐことです。
引き継がれる側を親クラス、引き継ぐ側を子クラスと呼びます。
上の画像はこれから書くプログラムの継承をイメージした図です。
親クラスである訪問者(Visitor)は玄関を訪ねる(visit)というメソッドを持っています。子クラスである子供たち(Children)とおばけ(Ghost)はそれぞれ独自のメソッドを持っています。
では、継承をしたらどうなるでしょうか?実際にプログラムを書いてみます!
実際にプログラムを書いてみる
継承の書き方
extendsを使って表現します。
class 子クラス extends 親クラス { }
Visitor.java、Children.java、Ghost.java、Main.javaのファイルに記述します。
// Visitor.java(親クラス) class Visitor { String name = "訪問者"; public void visit(){ System.out.println(name+"が玄関までやってきました。(ドアを開ける)"); } }
// Children.java(子クラス) class Children extends Visitor{ String name = "子供たち"; public void tot(){ System.out.println(this.name+"「トリックオアトリート!!」"); System.out.println("あなたは子供たちにお菓子を配りました。"); } }
// Ghost.java(子クラス) class Ghost extends Visitor{ String name = "おばけ"; public void mischief(){ System.out.println(name+"が驚かしてきました。"); System.out.println("あなたがびっくりすると"+name+"はすぐに姿を消しました。"); } }
// Main.java class Main { public static void main(String[] args){ Children c = new Children(); Ghost g = new Ghost(); c.visit(); //親クラスのメソッドを利用 c.tot(); System.out.println("------------------------------------"); g.visit(); //親クラスのメソッドを利用 g.mischief(); } }
実行結果
訪問者が玄関までやってきました。(ドアを開ける) 子供たち「トリックオアトリート!!」 あなたは子供たちにお菓子を配りました。 ------------------------------------ 訪問者が玄関までやってきました。(ドアを開ける) おばけが驚かしてきました。 あなたがびっくりするとおばけはすぐに姿を消しました。
上記のように、継承をするとVisitorのメソッドがChildrenやGhostのメソッドとして利用することができます!
なぜクラスの継承を使うのか
複数のクラスに重複するメソッドがある場合、継承を使わないと何回も同じことを記述しなければなりません。
また、修正する場合も全てのクラスで修正をしなければなりません。
このようにクラスの継承を使うとプログラムの見通しが良くなったり、メソッドの追加・修正がしやすくなります。
まとめ
・クラスの継承とは親クラスのメソッドを子クラスが引き継ぐこと。
・継承を表現するときは、extendsを使用
・継承にはメソッドの追加・修正などの管理がしやすくなるというメリットがある。
以上、最後までお読みいただきありがとうございました。
Webエンジニアとして勤務。
観劇と音楽が趣味です。
最近のコメント