반응형
Mixin 클래스란?
클래스코드를 다중상속을 통하여 재활용 할 수 있도록 만든 기능이다.
Mixin 생성 및 사용법
- 재사용될 클래스 코드는 생성자를 정의하면 안된다
- mixin으로 사용될 클래스의 생성을 원하지 않을경우 mixin 키워드를 사용한다
- mixin 클래스는 with 키워드로 상속해준다.
class Person{
int age;
String name;
Person(this.age, this.name);
}
class Singer{
String? song;
}
mixin Dancer{
String? dance;
}
class Idol extends Person with Singer, Dancer {
Idol(int age,String name,[String? song, String? dance]):super(age, name){
this.song = song??"no song";
this.dance = dance??"no dance";
}
playSingAndDance(){
print(this.song);
print(this.dance);
}
}
void main() {
Idol idol = Idol(20, "K-Idol", "k-pop","k-dance");
idol.playSingAndDance();
Singer();// 생성가능하나 생성자를 정의하면 mixin으로 사용 불가
//Dancer();// mixin은 생성 불가능!
}
on 키워드
만약 mixin 클래스를 특정 클래스에만 적용하고 싶다면 on 키워드를 사용한다.
class Musician {
// ...
}
mixin MusicalPerformer on Musician {
// ...
}
class SingerDancer extends Musician with MusicalPerformer {
// ...
}
반응형
'Dart > 기초' 카테고리의 다른 글
[Dart] deferred as 로 라이브러리 나중에 로딩하기 (0) | 2021.10.15 |
---|---|
[Dart] var과 dynamic (0) | 2021.10.15 |
[Dart] Dart 클래스 배우기 (0) | 2021.10.14 |
[Dart] Dart 배우기 (0) | 2021.10.13 |
[Dart] 리스트이어 붙이기. spread operator ... (0) | 2021.07.26 |
댓글