dart: abstract class

Darcy Daeseok YU ·2022년 12월 2일
0

Abstract Class

모든 클래스가 가지고 있어야하는 함수를 정의

메소드 OR 변수를 '구현'하는가 그대로 '사용'하는가에 따라서 상속의 형태가 갈리게 된다.

  • extends
    부모에서 선언 / 정의를 모두하며 자식은 메소드 / 변수를 그대로 사용할 수 있음
  • implements (interface 구현)
    부모 객체는 선언만 하며 정의(내용)은 자식에서 오버라이딩 (재정의) 해서 사용해야함
  • abstract
    extends와 interface 혼합. extends하되 몇 개는 추상 메소드로 구현되어 있음
class Human {
  final String name;

  Human({required this.name});

  void sayHello() => print('I am $name');
}

enum Team { red, blue }

class Player extends Human {
  final Team team;

  Player({
    required this.team,
    required String name,
  }) : super(name: name);

  @override
  void sayHello() {
    super.sayHello();
    print('Player $name in ${team} team');
  }
}

void main() {
  var man = Player(name: 'Sonny', team: Team.red);
  man.sayHello();
}
profile
React, React-Native https://darcyu83.netlify.app/

0개의 댓글