Flutter

【Flutter/Dart】mixinとは?概念や使い方を徹底解説!

こんにちは、テルプロです!

「mixin(クラスの拡張)の使い方がわからない」とお悩みではないでしょうか?

テルプロ

本記事ではそんな悩みを解決していきます!

Flutter/Dartの基礎文法一覧

mixinとは

  1. 複数のクラスを継承できるようにしてくれるもの

mixinを理解する上で、押さえておくべきポイントは上記の1点のみです。

クラスがわからないという方は下記の記事をご参照ください。

では、詳しく解説していきます!

基本的な使い方

mixinを使わなかった場合

// 魚クラス
class Fish {
  void swim() {
    print('Changing position by swimming');
  }
}
// 鳥クラス
class Bird {
  void fly() {
    print('Changing position by flying');
  }
}
// アヒルクラス - 魚クラスと鳥クラスの内容を継承しようとする
class Duck extends Fish,Bird{  // エラー発生
}

//出力結果 複数クラスを継承することはできないのでエラーが発生する!!

上記のように、クラスは基本的に複数のクラスを継承することはできません。

しかし、mixinを使うことで複数のクラスを継承することができるようになります。

では、mixinを使った場合の例を見ていきましょう!

mixinを使った場合

// 魚クラス
mixin Fish {
  void swim() {
    print('Changing position by swimming');
  }
}
// 鳥クラス
mixin Bird {
  void fly() {
    print('Changing position by flying');
  }
}
// アヒルクラス - 魚クラスと鳥クラスの内容を継承しようとする
class Duck with Fish,Bird{  // 継承成功
}


//出力結果 mixinを使っているため、複数クラスを継承することができる!!

上記のように、mixinを使うことで複数のクラスを継承することができます。

これで、魚クラスと鳥クラスのプロパティ/メソッドを自由に触れるようになりました。

以上が、mixinの基本的な使い方です。

まとめ

今回は【mixin】の概念や使い方を徹底解説しました。

解説の通りmixinは、複数のクラスを継承できるようにしたい際に用いるものとなります。Dartの文法をしっかりと押さえて、開発の幅を広げていきましょう。

▼以下では、私が実際にFlutter学習に使用した厳選のUdemyの動画をご紹介してます!
ぜひ参考にしてみてください!

最後までご覧いただきありがとうございました。ではまた!

参考文献
ABOUT ME
テルプロ
東京都在住のアプリエンジニア。大学では、ソフトウェア開発の研究に取り組む。長期のエンジニアインターンシップを経て、実務スキルを磨き、現在はフリーランスエンジニアとしても活動中。メインはモバイルアプリ開発。IT関連の記事監修も行い、技術の共有と普及に励んでいます。 監修実績(レバテックフリーランス
Flutter関連の書籍を出版しました!