반응형
추상 메서드/클래스를 선언하고 다른 클래스가 그 추상메서드/클래스를 extends 상속할 경우에 반드시 그 클래스는 해당 클래스가 가진 메서드를 포함해야 한다. 하지만 추상클래스/메서드의 '추상'의 의미처럼 클래스마다 그 내용은 각각 다르게 정의할 수 있다.
abstract class Human {
void walk();
// what's the signiture of this
// what's the return value
// they let us know what other class should have
}
enum Team { red, blue, Portugal, Manchester_United }
enum XpLevel { beginner, intermediate, advanced }
//따옴표로 감쌀 필요가 없다.
class Player extends Human {
void walk() {
print('walk method was just implemented');
}
String name;
XpLevel xp;
Team team;
Player({required this.name, required this.xp, required this.team});
void sayHello() {
print("Hi, my name is $name");
}
}
void main() {
var ronaldo = Player(name: 'Ronaldo', team: Team.blue, xp: 10000)
..name = 'Cristian Ronaldo'
..team = Team.Manchester_United
..xp = XpLevel.advanced;
ronaldo.sayHello();
}
반응형
'DART' 카테고리의 다른 글
[노마드코더: Dart 시작하기] #4.9 Mixins (0) | 2022.11.21 |
---|---|
[노마드코더 : Dart 시작하기] #4.8 Inheritance (0) | 2022.11.21 |
[노마드코더 : Dart 시작하기] #4.6 Enums (0) | 2022.11.21 |
[노마드코더 : Dart 시작하기] #4.5 Cascade Notation (0) | 2022.11.21 |
[노마드코더 : Dart 시작하기] #4.4 Recap (0) | 2022.11.21 |