TIL] Dart-Interface


🌼 Interface
  • Interface:クラスで宣言する必要がある変数/関数などを定義するときにインタフェース概念を使用します.
    ▲他の宣言方法はなく、classを作成するようにInterface classを作成できます.
    ▲Interface classの実装は、無条件にインタフェースとして定義されることを意味する.
    ▲類似の性質を持つclassは、特定の変数または関数を持つ必要がある場合に使用します.
  • void main() {
      BoyGroup bts = BoyGroup('bts');
      bts.sayName();
      
      GirlGroup redVelvet = GirlGroup('redVelvet');
      redVelvet.sayName();
    }
    
    abstract class IdolInterface {
      String? name;
      void sayName(){}
    }
    
    class BoyGroup implements IdolInterface {
      @override
      String? name;
      BoyGroup(String name);
    
      @override
      void sayName() {
        print('제 이름은 $name입니다.');
      }
    }
    
    class GirlGroup implements IdolInterface {
      @override
      String? name;
      GirlGroup(String name);
    
      @override
      void sayName() {
        print('제 이름은 $name입니다.');
      }
    }
  • Q.遺伝に似た概念ではないでしょうか.
    親クラスを拡張し、@overrideで類似のクラスを作成することもできます.
    ただし、親を継承する値と使用する変数/関数の定義にはわずかな違いがあるので、状況に応じて適切に使用することが望ましい.
  • void main() {
      BoyGroup bts = BoyGroup('bts');
      bts.sayName();
    }
    
    class IdolInterface {
      String? name;
      void sayName(){}
    }
    
    class Idol {
      final String name;
      Idol(this.name);
      
      void sayName(){
        print('제 이름은 $name입니다.');
      }
    }
    
    
    class BoyGroup extends Idol {
      BoyGroup(String name) : super(name);
      
      @override
      void sayName() {
        print('제 이름은 $name입니다.');
      }
    }
    出典:YOUTUBEコード工場