**이 페이지에서 알 수 있는 내용

- Mixins**

Mixins

Mixin의 조건은 생성자가 없는 클래스여야 합니다. with 키워드를 사용하면, 생성자가 없는 클래스들의 프로퍼티들을 사용할 수 있습니다.

extend를 하면 extend한 클래스는 부모 클래스가 되고, 부모 클래스의 인스턴스가 되지만, Mixin은 with 키워드를 통해서 내부의 프로퍼티와 메소드를 가져오기만 합니다.

예제

// Mixins
class Type {
  final String type = "animal";
}

class Strong {
  final int strength = 100;
}

class Quickly {
  final double speed = 50.0;
  void checkSpeed() {
    print("speed is $speed");
  }
}

class Animal with Type, Strong, Quickly {
  String name = "Horse";

  Animal(this.name);

  explain() {
    print("$name is $type.\\nstrength is $strength and speed is $speed");
  }
}

void main() {
  var animal = Animal("Horse");
  animal.explain();
}