サブクラスのオブジェクトはスーパークラスの変数でも扱えます。
F1 f1 = new F2();//とか出来ます。
■javaはオブジェクトが違うクラスの変数でも、オブジェクト自体のクラスのメソッドが呼び出される、
■スーパークラスの変数だと、サブクラスのメソッドは呼び出せません
■オーバーライド とは サブクラス・スーパークラスの同じメソッド名・同じ引数のメソッドを定義すること。
■
//F1クラスはスーパークラスです。
//F2クラスはサブクラスです。
//配列で扱われているオブジェクトがどのクラスでも、生成元のクラスのメソッドが呼び出されます。
F1 f1[];
f1 = new F1[2];
f1[0] = new F1();
f1[0].setCar(111,222);//生成したインスタンス元、スーパークラスのメソッドが実行
f1[1] = new F2();
f1[1].setCar(1233,432);//生成したインスタンス元、サブクラスのメソッドが実行
■1つのメソッドが状況に応じて動く事を多様性(ポリモーフィズム)という
0 件のコメント:
コメントを投稿