継承クラスを作成
クラスは継承関係を持たすことができます。継承とはあるクラスの変数、メソッドを別のクラスが利用できるようにすることです。
プログラムで確認していきましょう。
プロジェクトjava01にパッケージstep11、クラスParent、クラスChildを作成してください。
そしてParent,Childに次のプログラムを入力するかコピーし貼り付けてください。
1 2 3 4 5 6 7 8 9 10 |
package step11; public class Parent { public void parent01() { System.out.println("parent01"); } public void parent02() { System.out.println("parent02"); } } |
1 2 3 4 5 6 7 8 9 10 |
package step11; public class Child extends Parent{ public void child01() { System.out.println("child01"); } public void child02() { System.out.println("child02"); } } |
最後にMainクラスに6行目~10行目を追加してください。そして実行してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
package step10; public class Main { public static void main(String[] args) { Child ch = new Child(); ch.child01(); ch.child02(); ch.parent01(); ch.parent02(); Sub hensu = new Sub(7); hensu.print(); System.out.println(hensu.getNum()); } } |
プログラム内容
プログラムを見ていきます。クラスChildの3行目でクラスの定義を行っていますが、「行末にextends Paren」があります。
3 |
public class Child extends Parent{ |
これは、クラスChildがクラスParentを継承する宣言になります。従ってクラスChildはクラスParentの変数、メソッドが扱えるようになるのです。それがクラスMainの9行目~10行目です。
9 10 |
ch.parent01(); ch.parent02(); |
変数chはクラスChildのインスタンスです。しかしクラスChildでは定義していないはずのメソッドparent01やparent02が使えます。
このようにクラスを継承すると継承元のメソッド、変数が使えるようになります。
継承ルール
継承にはルールがあります。継承先では継承元は1つでなければいけません。継承元は複数のクラスから継承できます。
親子関係に似ていることから継承元を親クラス、継承先を子クラスと言うことがあります。また別の言い方で継承元をスーパークラス、継承先をサブクラスとも言います。
なにが便利?
継承を使うと何が便利なのでしょうか。最初に考えられるのは処理の共通化です。例えば新規に作成するクラスB、クラスCがあります。2つのクラスでは共通処理が30%あるとします。その時にクラスAを作成し共通の処理を記述します。そして、クラスB、クラスCはクラスAを継承させます。こうするとクラスAを共通処理のクラスとして使えます。
次に考えられるのがプログラムの流用です。新規のプログラムBが既存のプログラムAと処理内容が80%同じだとします。その時にクラスBでクラスAを継承することにより80%のプログラムを記述する必用がなく、残り20%を記述するだけで完成します。
継承を使った様々なテクニックがあります。それはJavaに慣れながら徐々に獲得していってください。