- 자신의 클래스에 없으면 부모의 클래스를 찾아서 name, grade 를 출력한다.
- 자신의 클래스에 name, grade 변수가 있다면 super/this 키워드를 주의해서 사용할 것
void main() {
Student kim = new Student(1, 'kim');
kim.who();
GradeOne lee = new GradeOne(['국어','수학','영어'], 2, 'lee');
lee.who();
print(lee.subject);
lee.sayInfo();
}
// 학생, 학년, 학생이름
class Student {
int grade;
String name;
Student(this.grade, this.name);
void who() {
print('I am $name, grade is $grade');
}
}
// 1학년, 과목은 리스트
class GradeOne extends Student {
List<String> subject;
GradeOne(this.subject, int grade, String name) : super(grade, name);
void sayInfo(){
print('I am ${super.name}, grade is ${super.grade}, my subject are "${this.subject.join(',')}"');
print('I am ${this.name}, grade is ${this.grade}, my subject are "${this.subject.join(',')}"');
}
}
--------------------------------------------[result]
I am kim, grade is 1
I am lee, grade is 2
[국어, 수학, 영어]
(super)I am lee, grade is 2, my subject are "국어, 수학, 영어"
(this) I am lee, grade is 2, my subject are "국어, 수학, 영어"