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
반응형