親子関係
クラスで継承できるのは1つのクラスだけです。親子関係と同じで複数の親を持つことはできません。
親は複数の子供を持つことができますので、複数のクラスから継承されます。
「この親子関係だけでプログラムの関係を全て表現できるかな?実際はもっと複雑だよ。」ベテランBはまだまだ納得がいかないようです。でも指摘は的を得ています。
「はい。次のプログラムを見てください。」
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
package jp.ayax; public class Main { public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ System.out.println("---M処理開始"); M processx = new M(); } } //処理でベースとなるクラス class Base{ public Base(){ process1(); process2(); } //絶対に変更にならない処理1 public void process1(){ System.out.println("process1"); } //絶対に変更にならない処理2 public void process2(){ System.out.println("process2"); } } //X処理 class X extends Base{ public X(){ process3(); process4(); } //X処理独自処理 public void process3(){ System.out.println("process3"); } //X処理独自処理 public void process4(){ System.out.println("process4"); } } //M処理 class M extends X{ public M(){ process5(); } //M処理独自処理 public void process5(){ System.out.println("process5"); } } |
1 2 3 4 5 6 |
---M処理開始 process1 process2 process3 process4 process5 |
孫も登場
40行目からクラスMが追加されています。注目してもらいたいのは、41行目です。
41 |
class M extends X{ |
クラスXを継承しています。
「あっ、孫だ!」新人Cが驚いたようです。
「このように1世代だけではなく、さらに継承していくことができます。」
「うーん・・・」腕組みしながら唸るBでした。