mdr141
6/3/2018 - 6:23 AM

Java継承

OBJ:extends

// スーパークラスMechatro
class Mechatro {
  private String name;
  private String color;

  public void setName(String name) {
    this.name = name;
  }

  public void setColor(String color) {
    this.color = color;
  }

  public void printData() {
    System.out.println("なまえ: " + this.name);
    System.out.println("いろ: " + this.color);
  }
}
class Main {
  public static void main(String[] args) {
    // インスタンスを生成し、変数に代入
    Wego wego1 = new Wego();
    Mate mate1 = new Mate();

    // スーパークラスのインスタンスメソッドを呼び出す
    wego1.setName("びびっと");
    wego1.setColor("黄");
    wego1.printData();
    // サブクラス独自のメソッドを呼び出す
    System.out.println(wego1.getPower());

    // スーパークラスのインスタンスメソッドを呼び出す
    mate1.setName("あいぼりー");
    mate1.setColor("薄クリーム");
    mate1.printData();

  }
}
// スーパークラスMechatroを継承
class Mate extends Mechatro {
}
// スーパークラスMechatroを継承
class Wego extends Mechatro {
  // スーパークラスにはないサブクラス独自のフィールド
  private int power = 50;

  // スーパークラスにはないサブクラス独自のメソッド
  public int getPower() {
    return this.power;
  }
}
◆継承:「class サブクラス名 extends スーパークラス名 {}」
複数のクラス同士で重複しているコードを抜き出して新しいクラスを作り、新しく作ったクラスの内容を他のクラスが引き継ぐことで、コードの重複をなくす仕組み。
継承して作ったクラスでも独自のフィールドやメソッドを追加できる。

◆スーパークラス:継承されるクラス
◆サブクラス:スーパークラスを継承したクラス