프로그래밍 공부 메모/flutter
class 다루기 #6 super / this 언제 써야 하나?
jjs815
2022. 5. 17. 19:29
void main() {
Enginner codeFactory = new Enginner(
languages: ['dart', 'java', 'javascript'], name: 'jjs', building: '강남');
print(codeFactory.name);
print(codeFactory.building);
print(codeFactory.languages);
codeFactory.sayInfo();
}
//직원
class Employee {
final String? building; //여기서 final을 선언하는 이유는 해당 클래스에 파라미터를 무조건 받기위해
final String? name;
Employee(String? building, String? name)
: this.building = building,
this.name = name;
}
//엔지니어
//사용할줄 아는 언어 - 리스트 형식
class Enginner extends Employee {
List<String>? languages;
//employee 클래스를 상속 받았기 때문에 enginner의 생성자를 만들때도
//부모의 생성자를 같이 처리 해야한다
Enginner({List<String>? languages, String? name, String? building})
: this.languages = languages,
super(building, name);
void sayInfo() {
print( //부모 클래스에서 langugaes 변수 또한 상속 받았기 때문에 employee 클래스에서 직접적으로 명시하지 않아도 있는것 처럼 사용가능하다
'저의 이름은 ${super.name} 입니다 제가 근무하는 건물은 ${super.building} 입니다 제가 사용할 수 있는 언어들은 ${this.languages} 입니다 ');
}
}
만약 상속받은 변수 또는 함수를 자식 클래스에서 같은 이름으로 사용 한다면 해당 변수나 함수는 this를 사용해야 한다
반응형