LoginSignup
0
0

More than 3 years have passed since last update.

マッスルJavaオブジェクト指向 2日目 ~継承~

Posted at

継承とは

  • クラスの定義内容を受け継ぐこと
    • メソッド・フィールドを定義し直さなくてもそのまま使える:便利

Javaにおける継承

  • 拡張:継承したクラス(子クラス)で独自のメソッドやフィールドを追加
  • 再定義(オーバーライド):継承したクラス(子クラス)で元のメソッド・フィールドの定義を変更できる

継承のイメージ

  • 親よりも子の方が強い
    • 亀仙人(親クラス)と弟子の悟空(子クラス)
      • 弟子の悟空は かめはめ波(親の定義をそのまま使える) + 3倍かめはめ波(オーバーライド) + 舞空術(拡張)

継承の用語

  • 元のクラス(継承されるクラス)

    • 親クラス
    • スーパークラス
    • 継承元
  • 元のクラスを継承したクラス

    • 子クラス
    • サブクラス
    • 派生クラス
    • 継承クラス
    • 継承先

継承のコード例:定義の仕方

  • extendsキーワード
  • 子クラスでは、親クラスのフィールドやメソッドを書かなくても使える
  • 親クラスは1つしか指定できない
class 子クラス名 extends 親クラス名{

}

継承のコード例

  • 親クラス
public class Animal{
  public void eat(String f){
    System.out.println(f+"を食べます");
  }
  public void sleep(){
    System.out.println("眠ります");
  }
  public void wakeUp(){
    System.out.println("起きます");
  }
}
  • 子クラス
    • Birdクラスは、親クラスのAnimalクラスのsleepメソッドやwakeUpメソッドを呼び出せる
    • ①:拡張
    • ②:オーバーライド
public class Bird extends Animal{

  // ①:拡張
  public static int wing = 2;
  pulic void fly(){
    System.out.println("飛びます");
  }

  // ②:オーバーライド(上書き)
    // 親と同じメソッド名
  pulic void sleep(){
    System.out.println("木の上で眠ります");
  }
}

「super」 キーワード

  • オーバーライドを行う際に、親クラスの定義を利用できる
  • オーバーライドした子クラスのメソッドの中から、親クラスのメソッドやフィールドにアクセスしたいときに用いる
public class Bird extends Animal{

  pulic void sleep(){
    System.out.println("木の上で眠ります");

    // super
    super.sleep();
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0