DART

[노마드코더 : Dart 시작하기] #4.7 Abstract Classes

유호야 2022. 11. 21. 05:30
반응형

추상 메서드/클래스를 선언하고 다른 클래스가 그 추상메서드/클래스를 extends 상속할 경우에 반드시 그 클래스는 해당 클래스가 가진 메서드를 포함해야 한다. 하지만 추상클래스/메서드의 '추상'의 의미처럼 클래스마다 그 내용은 각각 다르게 정의할 수 있다.  

abstract class Human {
  void walk();
  // what's the signiture of this
  // what's the return value
  // they let us know what other class should have
}

enum Team { red, blue, Portugal, Manchester_United }

enum XpLevel { beginner, intermediate, advanced }
//따옴표로 감쌀 필요가 없다.

class Player extends Human {
  void walk() {
    print('walk method was just implemented');
  }

  String name;
  XpLevel xp;
  Team team;

  Player({required this.name, required this.xp, required this.team});

  void sayHello() {
    print("Hi, my name is $name");
  }
}

void main() {
  var ronaldo = Player(name: 'Ronaldo', team: Team.blue, xp: 10000)
    ..name = 'Cristian Ronaldo'
    ..team = Team.Manchester_United
    ..xp = XpLevel.advanced;

  ronaldo.sayHello();
}

 

반응형