728x90
반응형
Dart의 상속에 대해서 이해해보겠습니다.
먼저 Human Class를 생성합니다.
Human 클래스는 이름과 나이를 나타내는 멤버 변수로 가지고 있습니다.
class Human {
String name;
int age;
Human({
required this.name,
required this.age,
});
void intro() {
print("My name is $name and I'm $age years old.");
}
}
다음은 Human 클래스를 상속받은 Student 클래스를 생성합니다.
Student 클래스는 학생ID를 나타내는 number 라는 멤버 변수를 하나 더 가지고 있습니다.
class Student extends Human {
final int number;
Student({
required String name,
required int age,
required this.number,
}) : super(name: name, age: age); // 부모 클래스 생성자 호출
}
void main() {
var student = Student(
name: 'name',
age: 19,
number: 2020031432,
);
}
이제 Human 클래스의 intro() 메서드를 수정해서
Student 클래스가 제대로 생성되었는지 확인하고 싶습니다.
이제 부모 클래스의 메서드를 override합니다.
class Human {
String name;
int age;
Human({
required this.name,
required this.age,
});
void intro() {
print("My name is $name and I'm $age years old.");
}
}
class Student extends Human {
final int number;
Student({
required String name,
required int age,
required this.number,
}) : super(name: name, age: age);
// 부모 클래스 메서드 수정
@override
void intro() {
// Human 클래스 intro()
super.intro();
print("My Student-ID is $number");
}
}
void main() {
var student = Student(
name: 'name',
age: 19,
number: 2020031432,
);
student.intro();
}
위의 코드를 실행하면
Student 클래스가 제대로 생성되어 intro() 메서드를 호출하는 것을 확인할 수 있습니다.
감사합니다.
반응형