본문 바로가기
개발일지/임시카테고리

dart - class interface (abstract, implements) 다트 - 클래스 인터페이스 앱스트랩트, 임플리먼트 사용강제 5

by 다니엘의 개발 이야기 2025. 3. 24.
320x100
// interface
// 정의를 해놓으면, 정의를 해놓은대로 사용을 강제한다.

void main() {
  BoyGroup bts = BoyGroup('BTS');
  GirlGroup redVelbet = GirlGroup('redVelbet');
  
  bts.sayName();
  redVelbet.sayName();
  
  
}

// 여기에 더해서 abstract를 붙여주면, 부모클래스로 사용할 것은 인스턴스로
// 사용할 수 없다.
abstract class IdolInterFace{
  String name;
  
  IdolInterFace(this.name);
  
//   부모 클래스는 interface의 경우 "인스턴스"로 만들려는 의도가 없으면, 
  // 이렇게 공백으로 두어도 된다.
  void sayName() {
    
  }
}

// implements가 interface를 쓴다는 내용
// implements의 경우는 부모 클래스에서 선언된 것을 자식이 지정 해주지 않으면
// 에러 발생이다.
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 입니다.');
  }
}
300x250