본문 바로가기

Dart

[Dart] Class - super, this

  • 자신의 클래스에 없으면 부모의 클래스를 찾아서 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 "국어, 수학, 영어"

'Dart' 카테고리의 다른 글

[Dart] Class - Cascade  (0) 2021.05.27
[Dart] Class - interface  (0) 2021.05.27
[Dart] Class - Static  (0) 2021.05.27
[Dart] Class - Method override  (0) 2021.05.27
[Dart] Class - 상속/Inheritance  (0) 2021.05.27