TIL: Dart | [노마드코더] 상속 - 221231

Lumpen·2022년 12월 31일
0

Dart

목록 보기
19/20

상속

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 키워드를 통해 부모의 필드나 메소드에 접근할 수 있다

profile
떠돌이 생활을 하는. 실업자는 아니지만, 부랑 생활을 하는

0개의 댓글