1)
void main() {
print('---------- Idol -----------');
Idol apink = Idol(name: '에이핑크', membersCount: 5);
apink.sayName();
apink.sayMemberCount();
print('---------- Boy Group -----------');
BoyGroup bts = BoyGroup('BTS', 7);
bts.sayName();
bts.sayMemberCount();
bts.sayMale();
print('---------- Girl Group -----------');
GirlGroup redVelvet = GirlGroup('Red Velvet', 5);
redVelvet.sayName();
redVelvet.sayMemberCount();
redVelvet.sayFemale();
print('---------- Type Comparison -----------');
print(apink is Idol);
print(apink is BoyGroup);
print(apink is GirlGroup);
print('---------- Type Comparison 2 -----------');
print(bts is Idol);
print(bts is BoyGroup);
print(bts is GirlGroup);
print('---------- Type Comparison 3 -----------');
print(redVelvet is Idol);
print(redVelvet is BoyGroup);
print(redVelvet is GirlGroup);
}
// 상속 - inheritance
//
// 상속을 받으면 부모 클래스의 모든 속성을
// 자식 클래스가 부여받는다.
class Idol {
// 이름
String name;
// 멤버 숫자
int membersCount;
Idol({
required this.name,
required this.membersCount,
});
void sayName() {
print('저는 ${this.name}입니다.');
}
void sayMemberCount() {
print('${this.name}은 ${this.membersCount}명의 멤버가 있습니다.');
}
}
class BoyGroup extends Idol {
BoyGroup(
String name,
int membersCount,
) : super(
name: name,
membersCount: membersCount,
);
void sayMale() {
print('저는 남자 아이돌입니다.');
}
}
class GirlGroup extends Idol {
GirlGroup(
String name,
int membersCount,
) : super(
name: name,
membersCount: membersCount,
);
void sayFemale() {
print('저는 여자 아이돌입니다.');
}
}

'개발이 좋아서 > Flutter가 좋아서' 카테고리의 다른 글
| [Dart] 3일차_객체지향_상속_static (0) | 2022.12.14 |
|---|---|
| [Dart] 3일차_객체지향_상속_override (1) | 2022.12.14 |
| [Dart] 2일차_객체지향_getter/setter (0) | 2022.12.12 |
| [Dart] 2일차_객체지향 (0) | 2022.12.12 |
| [Dart] 2일차_함수 선언 (0) | 2022.12.12 |