이번에는 Inheritance. 상속.
python같은 다른 언어와 비슷하다고 하는데...
사실 나는 코드를 직접 배워본 적이 없고 야매로 하는 사람이라 잘 몰랐다...
Human이라는 이름을 갖는 class가 있다고 하자.
이제 Player이라는 이름을 갖는 class를 만들 것이다.
그런데, Player도 사람일테니 Human class를 그대로 가져오고 싶다.(상속)
이렇게 'extends'를 이용해서 class를 상속받는다.
그리고, Player class를 사용할 때에 name을 받아와서 Human class로 보내줘야 하기 때문에, name을 받아오도록 한 후에, 콜론이후에 있는 super(name)을 이용해서 부모 class에 보내준다.
이 방법은 Human에서 여러 변수가 필요할 경우에는 '순서'가 중요하다.
만약 순서 상관 없이 named parameter를 이용하고 싶다면?
앞에서 배웠던 것을 응용하면된다.
중괄호를 써서 named parameter로 바꿔주고 쓰던대로 쓰면 된다.
이러면 super에 들어가는 변수들의 순서가 중요하지 않다. 개꿀.
그러면, 부모 class와 동일한 이름을 갖지만 Player1만의 함수를 사용하고 싶다면?
@override를 사용하면 된다. 이렇게 쓰면 sayHello함수는 Human1에도 있지만 그것을 무시하고 Player1에 있는 sayHello를 사용하면 해당하는 함수를 사용한다는 뜻이다.
즉, 덮어씌운다고 생각하자.
아, 참고로 Team은 enum을 이용해서 만들어 둔 것이다.
그렇다면 상속을 여러번 하고 싶다면? 다음 강의에서 계속된다.
'앱 만들기 프로젝트 > Dart' 카테고리의 다른 글
Dart - 4.9 Mixins (0) | 2024.10.16 |
---|---|
Dart - 4.7 Abstract Classes (0) | 2024.10.16 |
Dart - 4.6 Enums (1) | 2024.10.16 |
Dart - 4.5 Cascade Notation (0) | 2024.10.16 |
Dart - 4.3 Named Constructors (0) | 2024.10.16 |