- abstract class 로 선언 (interface 가 따로 있진 않음)
void main() {
BoyGroup bts = BoyGroup('BTS');
GirlGroup redVelvet = GirlGroup('레드벨벳');
bts.sayName(); // 제 이름은 BTS 입니다.
redVelvet.sayName(); // 제 이름은 레드벨벳 입니다.
print(bts is IdolInterface); // true
print(bts is BoyGroup); // true
print(bts is GirlGroup); // false
print(redVelvet is IdolInterface); // true
print(redVelvet is BoyGroup); // false
print(redVelvet is GirlGroup); // true
}
// interface
abstract class IdolInterface { // 인스턴스화 불가
String name;
IdolInterface(this.name);
void sayName();
}
//interface의 속성과 메서드 강제
class BoyGroup implements IdolInterface {
String name;
BoyGroup(this.name);
void sayName() {
print('제 이름은 $name 입니다.');
}
}
class GirlGroup implements IdolInterface {
String name;
GirlGroup(this.name);
void sayName() {
print('제 이름은 $name 입니다.');
}
}