dev/flutter
[dart] covariant
donguran
2024. 4. 29. 10:44
728x90
반응형
class Food {
Food(this.name);
String name;
}
class Animal {
void eat(Food food) {
}
}
Food라는 클래스가 있고 Animal이라는 클래스가 있다.
Animal클래스에서 eat이라는 먹는 함수가 있다고 예를 들어보자.
Food와 Animal을 상속한 다른 클래스가 있을 때,
covariant를 사용할 수 있다.
class Meat extends Food { ... }
class Lion extends Animal { ... }
Lion이 Animal클래스를 상속받고,
eat이라는 함수를 재사용할 때 covariant를 사용해서 Food클래스를 parameter로 받는 것이 아닌,
Meat타입을 parameter로 받을 수 있다.
class Lion extends Animal {
void eat(covariant Meat meat) {
}
}
전역적으로 상속할 클래스라면 매우 유용할 것 같다는 생각이든다.
728x90
반응형