|
〜クラス編〜 オーバーライド |
|
オーバーライドと言うのは、スーパークラスで定義したメソッドを再度サブクラスで 定義し直すことです。簡単に言うですとスーパークラスとサブクラスで、同じ名前、同 じ引数のメソッドがあるということです。そしてこのオーバーライドをする事によって スーパークラスの方で定義された処理は、実行されずにサブクラスで定義した処理を行 うことになるです。 実際にサンプルを見てみるです〜
これを実行するとメガさんの方はご飯を食べて終わりですね!(Humanクラスのeat() メソッドを呼んでいる)一方ギガさんの食事は肉や麺、ドネルサンドと言ったものを食 べてるですね!(Ooguiクラスのeat()メソッドを呼んでいる)これは、eat()メソッドを オーバーライドしたからこのような結果になったです。 もし、OoguiクラスでHumanクラスのeatメソッドを呼び出したかったらどうすればい いのかと言うですとそれは、super.を使って呼び出せばいいです。super.はスーパー クラスで宣言したものを呼び出すときに省略可と言ったキーワードですね!でも今回の 場合だと省略すると呼び出せないのでsuper.を使って呼び出すです。 Ooguiクラスのeat()メソッドは次のようになるです。
public void eat(){
super.eat();
System.out.println("肉類を食べる");
System.out.println("麺類を食べる");
System.out.println("ドネルサンドを食べる");
}
Ooguiクラスのeat()メソッドの1行目にsuper.eat()を追加することによって実行結果は、肉類を食べるの前にご飯を食べるが追加されるです。これはHumanクラスのeat()メ ソッドを呼び出したからですね!このsuper.eat()は、コンストラクタのときと違って 1行目に書く必要は別にないです。そのへんは実際にプログラムを作るときによって変 わるです。ほとんどは1行目に来ると思うです〜 オーバーライドはメソッドのところでやったオーバーロードとごっちゃ混ぜになり やすいのでしっかり区別をしてほしいです。ちなみにオーバーロードは同じメソッド 名で異なる引数を定義することだったですね! 今回のポイント @ スーパークラスで定義したメソッドをサブクラスで再度定義することをオーバーラ イドと言う。 A オーバーライドした後でスーパークラスのメソッドを呼びたい場合はsuper.を使っ て呼ぶ。 TOPに戻る Java講座に戻る |