“이전에 만든 클래스와 닮았지만, 일부 다른 클래스"를 만들 필요가 있을 경우가 늘어날 것이다.
객체지향 프로그래밍에서 상속은 클래스의 멤버를 물려주는 것을 의미한다. 이때 물려주는 쪽을 부모 클래스(혹은 Super class)라고 하고 상속을 받는 쪽을 자식 클래스(혹은 Sub class)라고 한다.
class 부모 class{
member var;
member function(){}
}
class 자식 class extends 부모 class{
member fuction(){}
}
class SuperHEro extends Hero{
SuperHero({requierd super.name,required super.hp});
bool _isFlying = false;
bool get isFlying => _isFlying;
set isFlying(bool value) {
_isFlying = value;
if (value) {
print('$name 이 날개를 펼쳤다');
} else {
print('$name 이 날개를 접었다');
}
}
void run() {
print('$name이 퇴각했다.');
}
}
class Hero{
Hero({required this.name, required this.hp, this.sword}){
print('Hero 클래스의 인스턴스를 생성했습니다.');
}
}
class SuperHero extends Hero{
SuperHero({required super.name, reQuired super.hp}){
print('SuperHero 클래스의 인스턴스를 생성했습니다.');
}
}
void main(List<String> arguments) {
final superHero = SuperHero(name: '한석봉', hp: 50);
}
자식클래스 일 수록 구체화 되고,부모 클래스 일 수록 추상적인 것으로 일반화 된다.