다트는 static polymorphism 을 직접? 지원하지 않음
다트는 자바, c 언어와는 다르게 overloading 이 제공되지 않음
또한 한 클래스 내 같은 함수명으로 여러개의 함수를 정의할 수 없음
Dart 의 다형성 runtime polymorphism 을 지원함
따라서 클래스, 인터페이스를 구현해 상속 및 오버라이딩을 통해서 다형성을 달성할 수 있음
인터페이스 정의 예시
abstract interface class Drawable {
void draw();
}
인터페이스 구현 예시
class House implements Drawable {
void draw () {
print();
}
}
클래스를 인터페이스로 선언
Drawable element = House();
List<Drawable> elements = [];
elements.add(Dog());
클래스 및 인터페이스를 상속받고 오버라이딩 예시
ref)
1."Polymorphism in Dart. There are two main forms of… | by Eman Yaqoob | Medium", 23.12.07, https://medium.com/@emanyaqoob/polymorphism-in-dart-refers-to-the-ability-of-objects-of-different-classes-to-be-treated-as-9e9d7cc9b4da