class Human {
final String name;
Human({ required this.name });
void sayHello() {
print('hello');
}
}
enum Team { blue, red }
class Player extends Human {
final Team team;
player({ required this.team, required String name })
: super(name: name);
}
void main() {
var player = Player(team: Team.red, name: 'name');
}
상속 받은 name 필드를 자식에서 부모로 전달하기 위해
자식의 생성자 뒤에 : super() 사용한다
자식에서 받은 생성자 함수의 매개변수에서 받은 값을 그대로 부모 클래스로 전달
상속 관계에서 부모의 메소드를 재정의 하는 것
같은 매개변수를 갖는 메소드를 다른 기능으로 재정의 한다
class Human {
final String name;
Human({ required this.name });
void sayHello() {
print('hello my name is $name');
}
}
enum Team { blue, red }
class Player extends Human {
final Team team;
player({ required this.team, required String name })
: super(name: name);
void sayHello() {
super.sayHello()
print('and I play for $team')
}
}
void main() {
var player = Player(team: Team.red, name: 'name');
}
super 키워드를 통해 부모의 필드나 메소드에 접근할 수 있다