📚 상속
📍 개념
부모의 상태(field)와 행위(function)을 물려 받는 것을 의미합니다.
• 부모 클래스와 자식 클래스가 있습니다.
• 상속은 부모 클래스에서 진행됩니다.
- 부모 클래스가 갖고 있는 변수와 함수는 자식이 사용할 수 있습니다.
- 하지만 자식 클래스가 가지고 있는 변수와 함수는 부모가 가질 수 없습니다.
📍 예제 1
사람 클래스가 있습니다.
class Person {
}
이 사람 클래스는 이름을 가졌고 말을 하며 걸을 수 있습니다.
class Person {
Person({
required this.name,
});
final String name;
void speak() {
print('안녕하세요 저는 $name입니다.');
}
void walk() {
print('$name, 걷고 있습니다.');
}
}
사람 클래스는 아래와 같은 방법으로 사용할 수 있습니다.
void main() {
Person mom = Person(name: '엄마');
print(mom.name); // 엄마
mom.speak(); // 안녕하세요 저는 엄마입니다.
mom.walk(); // 엄마, 걷고 있습니다.
}
이름이 히어로인 자식 클래스를 생성합니다.
class Hero {
}
자식이 부모클래스를 상속받기 위해선 extends 키워드를 사용해야합니다.
class Hero extends Person {
}
super class person 이 생성자로 name 을 필수값으로 전달받기 때문에
아래와 같이 히어로도 생성자를 추가합니다.
class Hero extends Person {
Hero(String name) : super(name: name);
}
히어로 클래스는 부모 클래스와 다르게 하늘을 날 수 있어
fly 함수를 추가해주었습니다.
class Hero extends Person {
Hero(String name) : super(name: name);
void fly() {
print('$name 히어로 날다');
}
}
부모는 자식의 함수를 사용할 수 없지만
자식은 부모의 함수와 변수를 마음껏 사용할 수 있습니다.
Hero child = Hero('자식');
child.speak();
child.walk();
자식은 자신만이 가지고 있는 기능(함수)를 사용할 수 있습니다.
void main() {
Person mom = Person(name: '엄마');
mom.speak();
mom.walk();
Hero child = Hero('자식');
child.speak();
child.walk();
child.fly();
}
'🌈 Programming > Dart' 카테고리의 다른 글
[Dart] Getter, Setter, 접근 제한자 (0) | 2022.06.06 |
---|---|
[Dart] 클래스 생성자(Class Constructor) (0) | 2022.06.06 |
[Dart] 클래스(Class) 선언과 인스턴스(Instance) (0) | 2022.06.06 |
[Dart] 객체 다루기 Map 타입 (0) | 2022.06.06 |
[Dart] 열거형 변수(List, Set)와 제네릭(Generic) (0) | 2022.06.06 |