Mixin classの使い方
- 前提
- abstract classが存在する
あるクラス(インスタンス)に、abstract classが持つ抽象メソッドの他に、別のクラスの持つメソッドも使わせたい場合に Mixinが便利。
例えば、Animal classを作成する。
Animal classには、すべての動物が行う行為であるBreathを定義する。
そして、動物の種類によって、行うことができる・できないが別れる行為(吠える、泳ぐ、飛ぶ)など
をmixin classとして定義する。
犬クラスを作成するときには、Animal classを継承させるとともに Bark(吠える) classをmixinすることで、犬クラスでは、 犬クラス内でBreath()とBark()を定義せずに、呼び出すことができる。
abstract class Animal{
void Breath(){
print("breath);
}
}
mixin Bark{
void bark() => print("Bark");
}
Mixin classを使いたいときは with をつける。
class Dog extends Animal with Bark{}
main(){
var dog = new Dog();
dog.breath();
dog.bark();
}
参考