Javaの開発をしたことがないので、やったことをまとめていこうと思います。
基本的なことをやっていくので初心者でも出来るレベルだと思います。
オーバーライド
[Oya1.java]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// パッケージの宣言 package chapter_4_9; /** * Oya1クラス(スーパークラス) */ public class Oya1 { // morningメソッド public void morning() { System.out.println("おはうございます。"); } // eveningメソッド public void evening() { System.out.println("こんばんは。"); } } |
[Kodomo1.java]
1 2 3 4 5 6 7 8 9 10 11 12 |
// パッケージの宣言 package chapter_4_9; /** * Kodomo1クラス(サブクラス) */ public class Kodomo1 extends Oya1 { // オーバーライド public void morning() { System.out.println("おはよう!!"); } } |
[Rensyu409_01.java]
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 |
// パッケージの宣言 package chapter_4_9; /** * Rensyu409_01クラス */ public class Rensyu409_01 { // mainメソッド(最初に実行される特別なメソッド) public static void main(String[] args) { // フィールドの定義 Oya1 instOya; Kodomo1 instKodomo; // インスタンスの生成 instOya = new Oya1(); instKodomo = new Kodomo1(); System.out.println("親のメソッドを呼び出します。"); // メソッドの呼び出し instOya.morning(); instOya.evening(); System.out.println("子のメソッドを呼び出します。"); // メソッドの呼び出し instKodomo.morning(); instKodomo.evening(); } } |
[表示結果]
1 2 3 4 5 6 |
親のメソッドを呼び出します。 おはうございます。 こんばんは。 子のメソッドを呼び出します。 おはよう!! こんばんは。 |
[Laundry1.java]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// パッケージの宣言 package chapter_4_9; /** * Laundry1クラス(スーパークラス) */ public class Laundry1 { // sentakuメソッド public void sentaku(String sentakumono) { System.out.println(sentakumono + "を洗いました。"); System.out.println(sentakumono + "を脱水しました。"); System.out.println(sentakumono + "を乾かしました。"); } } |
[Laundry2.java]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// パッケージの宣言 package chapter_4_9; /** * Laundry2クラス(サブクラス) */ public class Laundry2 extends Laundry1 { // オーバーライド public void sentaku(String sentakumono) { // 親のクラスのメソッドを呼び出し、利用する(親の全機能を利用出来る) super.sentaku(sentakumono); System.out.println(sentakumono + "にアイロンをかけました。"); } } |
[Rensyu409_02.java]
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 |
// パッケージの宣言 package chapter_4_9; /** * Rensyu409_02クラス */ public class Rensyu409_02 { // mainメソッド(最初に実行される特別なメソッド) public static void main(String[] args) { // フィールドの定義 String sentakumono = "シャツ"; Laundry1 inst1; Laundry2 inst2; // インスタンスの生成 inst1 = new Laundry1(); inst2 = new Laundry2(); System.out.println("Laundry1で洗濯します。"); // メソッドの呼び出し inst1.sentaku(sentakumono); System.out.println("Laundry2で洗濯します。"); // メソッドの呼び出し inst2.sentaku(sentakumono); } } |
[表示結果]
1 2 3 4 5 6 7 8 9 |
Laundry1で洗濯します。 シャツを洗いました。 シャツを脱水しました。 シャツを乾かしました。 Laundry2で洗濯します。 シャツを洗いました。 シャツを脱水しました。 シャツを乾かしました。 シャツにアイロンをかけました。 |
★ポイント
- オーバーライドとは継承したスーパークラスと同様のシグネチャを持つメソッドをサブクラス側に定義することである。
- オーバーライドの利点は、継承により効率的にスーパークラスの機能を流用しつつ、必要に応じてその機能を変更できることである。
javaでポイントになるものをまとめてみた newを使用したインスタンスの生成
javaでポイントになるものをまとめてみた 引数/戻り値を使用する
javaでポイントになるものをまとめてみた インスタンス変数とクラス変数
javaでポイントになるものをまとめてみた インターフェース
javaでポイントになるものをまとめてみた ポリモルフィズム
javaでポイントになるものをまとめてみた コレクションクラス