**이 페이지에서 알 수 있는 내용
- 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();
}