class Idol {
final String name;
final int membersCount;
Idol({
required this.name,
required this.membersCount,
});
void sayName() {
print('저희는 $name입니다.');
}
void sayMembersCount() {
print('$name은/는 $membersCount명의 멤버가 있습니다.');
}
}
class BoyGroup extends Idol {
BoyGroup(
String name,
int membersCount,
) : super(
name: name,
membersCount: membersCount,
);
}
void main() {
BoyGroup bts = BoyGroup('BTS', 7);
bts.sayMembersCount();
bts.sayName();
}
super
키워드는 Dart 프로그래밍 언어에서 하위 클래스(서브클래스)에서 상위 클래스(슈퍼클래스)의 생성자나 메소드에 접근할 때 사용됩니다. 이 경우 BoyGroup
클래스는 Idol
클래스를 상속받기 때문에 Idol
은 BoyGroup
의 슈퍼클래스입니다.
Idol
클래스는 아이돌 그룹의 기본 정보를 담고 있으며, 이름(name
)과 멤버 수(membersCount
)를 속성으로 가지고 있습니다. 생성자에서 이 두 속성을 초기화할 수 있도록 설정되어 있습니다.
BoyGroup
클래스는 Idol
클래스를 상속받아서 만들어진 서브클래스입니다. BoyGroup
클래스의 생성자는 자신의 이름과 멤버 수를 매개변수로 받아서 super
키워드를 통해 Idol
클래스의 생성자에게 전달합니다.
이때 super(name: name, membersCount: membersCount)
부분은 Idol
클래스의 생성자를 호출하며, name
과 membersCount
를 해당 클래스의 생성자에게 전달합니다. 이렇게 함으로써 BoyGroup
객체를 생성할 때 Idol
클래스의 속성들도 올바르게 초기화됩니다.
main
함수에서는 BoyGroup
클래스의 객체를 만들고, 그 객체의 메소드를 사용해서 그룹의 이름과 멤버 수를 콘솔에 출력합니다. BoyGroup
클래스는 Idol
클래스의 모든 메소드를 상속받았기 때문에 sayName
과 sayMembersCount
메소드를 직접 사용할 수 있습니다.
이 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다:
BTS은/는 7명의 멤버가 있습니다.
저희는 BTS입니다.
요약하자면, BoyGroup
클래스는 Idol
클래스를 상속받아서 만들어진 서브클래스이며, super
키워드를 사용하여 슈퍼클래스인 Idol
의 생성자를 호출하고 속성들을 초기화합니다. 이를 통해 BoyGroup
객체를 생성하고 사용할 때 Idol
클래스의 속성들과 메소드들을 사용할 수 있습니다.