Flutter

Dart 문법 - 상속

whs5758 2025. 8. 18. 18:46

상속이란?

상속은 부모가 가진 상태와 행위를 자식이 물려받는 것과 동시에 다형성이 성립해야 합니다.

 

다형성

다형성이란 여러 가지 형태를 가질 수 있는 능력을 의미합니다. 

다형성이 성립하는 경우에 상속을 하며, 상속을 하기 위해서는 extends 키워드를 사용합니다. 

class Burger {
  Burger() {
    // 부모 생성자
    print("버거");
  }
}

class Cheeseburger extends Burger {
  Cheeseburger() {
    // 자식 생성자
    print("치즈버거")
  }
}

void main() {
  Cheeseburger cb = Cheeseburger();
  // Cheeseburger는 다형성을 가집니다. Burger이기도 하고 Cheeseburger이기도 합니다.
  // Burger cb2 = Cheeseburger(); 해당 코드도 가능합니다.
}
버거
치즈버거

 

 

슈퍼(super) 키워드

super 키워드는 자식이 부모의 객체를 참조할 수 있는 키워드입니다. 

void main() {
  // Animal("호랑이");
  // Animal(name: "호랑이");
  Dog d1 = Dog("흰둥이", "강아지 사료");
  print(d1.name);
}

// 부모 클래스 - super
class Animal {
  String name;

  Animal(this.name);
// Animal({this.name = "동물"});
}

// 이니셜라이즈 :
class Dog extends Animal {
  String breed;

  Dog(String name, this.breed) : super(name);
}

// super 라는 키워드는 부모 클래스의 생성자나 메서드를 호출할 때 사용할 수 있다.

 

 

final 키워드와 이니셜 라이져(:) 키워드

  • final 키워드는 변수를 단 한 번만 초기화 하겠다고 선언하는 키워드입니다. 그리고 무조건 단 한 번은 초기화 되어야 하는 변수 입니다. 한 번 final로 초기화된 변수는 변경할 수 없기 때문에 변수가 아닌 상수라고 부릅니다. 
  • : 키워드는 생성자의 내부 스택이 실행되기 전에 다른 무언가를 호출하고 싶을 때 사용합니다.
class Burger {
  final String name;

  Burger(this.name);
}

class ChessBurger extends Burger {
  ChessBurger(String name) : super(name) {
  }
}

void main() {
  ChessBurger cb = ChessBurger("치즈햄버거");
  print(cb.name);
}
치즈햄버거

 

'Flutter' 카테고리의 다른 글

Dart 문법 - 추상 클래스  (1) 2025.08.18
Dart 문법 - Mixin  (0) 2025.08.18
Dart 문법 - dart null Safety  (3) 2025.08.18
Dart 문법 - 클래스  (2) 2025.08.18
Dart 문법 - 함수  (1) 2025.08.18