반응형
기본적인 클래스를 생성하자
void main() {
print('--------------------');
Idol apink = Idol(name: '에이핑크', membersCount: 5);
apink.sayName();
apink.sayMembersCount();
}
class Idol{
String name;
int membersCount;
Idol({ // named파라미터로 생성
required this.name,
required this.membersCount,
});
void sayName(){
print('저는 ${this.name}입니다');
}
void sayMembersCount(){
print('${this.name}은 ${this.membersCount}명의 멤버가 있습니다.');
}
}
만약 Idol을 BoyGroup과 GirlGroup으로 나눠서 Idol클래스를 상속받고자 하면
extends를 이용한다.
부모클래스를 지칭하는 것은 super
class BoyGroup extends Idol {
BoyGroup( //자식클래스는 positional parameter로 생성
String name,
int membersCount,
) : super(// 부모 클래스의 named parameter에 그대로 전달
name: name,
membersCount: membersCount,
); // Idol Class의 parameter를 의미
}
상속받은 BoyGroup은 부모(super)의 모든 속성을 사용할 수 있다.(상속 받았기 때문에)
void main() {
print('---------Idol-----------');
Idol apink = Idol(name: '에이핑크', membersCount: 5);
apink.sayName();
apink.sayMembersCount();
BoyGroup bts = BoyGroup('BTS', 7);
print('---------BTS-----------');
bts.sayMembersCount(); // 자식 클래스에는 sayMembersCount()가 없고 부모 클래스인 Idol에 있다.
bts.sayName();// 자식 클래스에는 sayName()가 없고 부모 클래스인 Idol에 있다.
}
하지만
자식에서 만든 속성은 부모에서 사용할 수 없다.
자식 Class는 Type으로써 부모 Class이기도 하면서 본인 Class이기도 하다
반응형
'Flutter > Dart 문법' 카테고리의 다른 글
[Dart] Static (0) | 2023.03.22 |
---|---|
[Dart] 오버라이딩 (0) | 2023.03.22 |
[Dart] Class의 getter와 setter (0) | 2023.03.22 |
[Dart] 생성자(constructor) (0) | 2023.03.22 |
[Dart] 함수의 선언 (parameter에 관하여) (0) | 2023.03.21 |