Dart #22 | Class(8) - Abstract Classes

HyeonWooGa·2023년 10월 8일
0

Dart

목록 보기
23/25
post-thumbnail

Abstract Classes (추상 클래스)


  • 추상화 메소드/추상 클래스 개요
  • 추상화 메소드/추상 클래스 사용

개요

  • 추상 클래스로는 인스턴스를 생성할 수 없다.
  • 추상 클래스는 다른 클래스들이 직접 구현해야하는 메소드들을 모아 놓은 일종의 청사진(Blueprint)
    • 수많은 청사진에 메소드의 이름과 반환 타입, 매개변수만 정해서 정의할 수 있다.
  • Flutter 를 사용할때 많이 사용하진 않아도 유용한 기능이긴 합니다.

사용

  • 예시는 아래와 같습니다.
// Abstract Methods & Abstract Classes
//// 추상 클래스로는 인스턴스를 생성할 수 없다.
//// 추상 클래스는 다른 클래스들이 직접 구현해야하는 메소드들을 모아 놓은 일종의 청사진(Blueprint)
////// 수많은 청사진에 메소드의 이름과 반환 타입, 매개변수만 정해서 정의할 수 있다.
//// Flutter 를 사용할때 많이 사용하진 않아도 유용한 기능이긴 합니다.

abstract class Human {
  void walk();
}

enum Team { Christians, NonChristians, Unknown }

class Player extends Human {
  int xp;
  String name;
  Team team;

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

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

  void walk() {
    print('I\'m walking');
  }
}

class Coach extends Human {
  void walk() {
    print('Coach\'s walking');
  }
}

void main() {
  //인스턴스 생성직후 Cascade Notation 사용
  var park = Player(
    name: 'Park',
    xp: 0,
    team: Team.Christians,
  )
    ..name = 'PYW'
    ..xp = 100
    ..sayHello(); // 'Hi my name is PYW' 출력

  //인스턴스 생성직후가 아닐때 Cascade Notation 사용
  var temp = park
    ..name = 'Park'
    ..xp = 1000
    ..sayHello(); // 'Hi my name is Park' 출력
}

학습 중에 작성된 내용이므로 잘못되거나 부족한 내용이 있을 수 있습니다.

profile
Aim for the TOP, Developer

0개의 댓글