dart에서 클래스의 상속에 대해서 정리해 보겠습니다.
1. 상속
- SubClass는 ParentClass의 자원을 상속받았기 때문에 body부분에 코드가 기술되지 않았지만 부모코드에서 기술된 자원을 사용할 수 있습니다.
class ParentClass {
int val = 10;
void fun() {
print("Parent..fun()...");
}
}
class SubClass extends ParentClass {}
main() {
var obj = SubClass();
obj.fun();
print("obj.val : ${obj.val}");
}
결과)
Parent..fun()...
obj.val : 10
2. 오버라이딩
- 부모클래스의 속성을 그대로 사용할수도 있지만 상속을 받은 다음에 변경하고 싶은 부분은 새롭게 정의해서 사용할 수도 있습니다. 이것을 오버라이딩이라고 합니다.
class ParentClass {
int val = 10;
void fun() {
print("Parent..fun()...");
}
}
class SubClass extends ParentClass {
int val = 100;
void fun(){
print('Sub..재정의된 fun...');
}
}
main() {
var obj = SubClass();
obj.fun();
print("obj.val : ${obj.val}");
}
결과)
Sub..재정의된 fun...
obj.val : 100
- 자식클래스에서 부모클래스의 멤버에 접근하기
class ParentClass {
int val = 10;
void fun() {
print("Parent..fun()...");
}
}
class SubClass extends ParentClass {
int val = 100;
void fun() {
super.fun(); //부모클래스를 super로 접근
print('Sub..재정의된 fun...');
}
}
main() {
var obj = SubClass();
obj.fun();
}
출력)
Parent..fun()...
Sub..재정의된 fun...
부모클래스의 생성자 호출
class ParentClass {
int val = 10;
void fun() {
print("Parent..fun()...");
}
}
class SubClass extends ParentClass {
int val = 100;
void fun() {
super.fun(); //부모클래스를 super로 접근
print('Sub..재정의된 fun...');
}
}
main() {
var obj = SubClass();
obj.fun();
}
출력)
Parent..fun()...
Sub..재정의된 fun...
class ParentClass {
int cd = 1;
String id = "m001";
ParentClass(this.cd, this.id) {} //값을 받으면서 바로초기화
}
class SubClass extends ParentClass {
//부모클래스 cd, id값입력이 필수이기 때문에 상속을 받았으면 사양을 맞춰줘야 한다.
SubClass(int prm_cd, String prm_id) : super(prm_cd, prm_id) {}
}
main() {
var obj = SubClass(1, 'kkang');
print('${obj.cd} ${obj.id}');
}
출력)
1 kkang
=================================================
class ParentClass {
int cd = 1;
String id = "m001";
ParentClass(this.cd, this.id) {} //값을 받으면서 바로초기화
}
class SubClass extends ParentClass {
//부모클래스 cd, id값입력이 필수이기 때문에 상속을 받았으면 사양을 맞춰줘야 한다.
SubClass(super.cd, super.id);
}
main() {
var obj = SubClass(1, 'kkang');
print('${obj.cd} ${obj.id}');
}
출력)
1 kkang
By. 유목민 알폰스 - Nomadic Alphonse
'Dart' 카테고리의 다른 글
Dart 17. 명명된 생성자와 상수 생성자 {유목민 알폰스} (1) | 2023.11.08 |
---|---|
Dart 16. 클래스 생성과 호출 그리고 초기화 {유목민 알폰스} (1) | 2023.11.08 |
Dart 15. 함수와 제어문 {유목민 알폰스} (2) | 2023.11.07 |
Dart 14. 널 안전성 변수선언 {유목민 알폰스} (1) | 2023.11.07 |
Dart 13. 컬렉션 타입 List Set Map {유목민 알폰스} (1) | 2023.11.06 |