[Dart] 믹스인
2023. 4. 28. 05:08ㆍFE/Dart
Mixin
mixin 예약어로 믹스인을 선언한다.
mixin MyMixin{
int data = 10;
void func() {
print("mixin");
}
}
믹스인에는 변수와 함수를 선언할 수 있지만 클래스가 아니라 생성자는 선언할 수 없다.
생성자가 없으니 객체를 생성할 수 없다.
믹스인 활용
다트를 비롯하여 대부분의 객체지향 언어에서 다중 상속을 지원하지 않는다.
여러 클래스에서 선언된 멤버를 상속한 것처럼 사용하고 싶을 때 믹스인을 사용한다.
이 때 with 예약어를 사용한다.
mixin MyMixin {
int data = 10;
void func() {
print("mixin");
}
}
class MyClass with MyMixin {
void func() {
print("$data");
}
}
믹스인을 with로 사용하는 클래스 객체는 믹스인 타입으로 사용할 수 있다.
믹스인 사용 제약
특정 타입 클래스에서만 믹스인을 사용하도록 제약을 걸 수 있다.
믹스인 선언부에 on 예약어로 해당 타입을 지정하면 된다.
해당 타입을 상속하고 있는 클래스에서만 믹스인을 사용할 수 있다.
mixin MyMixin on MySuper {
}
class MySuper {
}
class MyClass extends MySuper with MyMixin {
}
728x90
'FE > Dart' 카테고리의 다른 글
[Dart] 다트에서 제공하는 연산자 (0) | 2023.04.28 |
---|---|
[Dart] 다트란 무엇인가 (0) | 2023.04.27 |