상속이란?
상속은 부모가 가진 상태와 행위를 자식이 물려받는 것과 동시에 다형성이 성립해야 합니다.
다형성
다형성이란 여러 가지 형태를 가질 수 있는 능력을 의미합니다.
다형성이 성립하는 경우에 상속을 하며, 상속을 하기 위해서는 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 |