【Flutter/Dart】super|親クラスのプロパティ・メソッドを呼び出す

Dartのサブクラスから親クラスのプロパティ・メソッドを呼び出せる「super」の使い方を紹介します。

継承する親クラスで引数が必要となる場合、サブクラスのコンストラクタからsuperを使用して親クラスに値を渡すことができます。

\ 世界最大級のオンライン学習サービス /

目次

superの使い方

親クラスのプロパティ・メソッドを呼び出す

super.親クラスのプロパティ名
super.親クラスのメソッド名

サブクラスから親クラスのプロパティ・メソッドを呼び出すには上記のように「super.〇〇」で呼び出します。

void main() {
  var sportsCar = SportsCar();
  sportsCar.compareSpeed();
}

class Car {
  int maxSpeed = 180;

  void carSpeed() {
    print('A自動車の最大速度:180km');
  }
}

class SportsCar extends Car {
  void compareSpeed() {
    super.carSpeed();
    print('Bスポーツカーの最大速度:300km');

    print('最大速度差:${300 - super.maxSpeed}km');
  }
}

//結果
//A普通自動車の最大速度:180km
//Bスポーツカーの最大速度:300km
//最大速度差:120km

サブクラスから親クラスのコンストラクタに値を渡す

class サブクラス名 extends 親クラス名 {
  サブクラス名(引数) : super(引数);
}

親クラスのサブクラスのコンストラクタで「super」を使って親クラスのコンストラクタを呼び出し継承します。

void main() {
  var sportsCar = SportsCar(180);
  print('最大速度:${sportsCar.maxSpeed}km');
}

class Car {
  int maxSpeed;

  Car(this.maxSpeed);
}

class SportsCar extends Car {
  SportsCar(maxSpeed) : super(maxSpeed);
}

//結果
//最大速度:180km

  • URLをコピーしました!
目次