static : 정적 멤버를 선언하는 키워드
=> 모든 인스턴스를 만들 때 같은 값을 넣고 싶은 멤버
- 선언 : static 타입 변수이름
- 값 변경은 메인함수에서, class.static변수 = 값;
class Employee {
static String building;
String name;
Employee(String name) : this.name = name;
void printInfo() {
print("저는 ${this.name}이고 ${building}에서 일합니다.");
//this.building x => 값이 할당 x
}
}
void main() {
Employee a = new Employee('a');
Employee.building = "아파트";
a.printInfo();
}
- 부모클래스 속성을 자식클래스가 온전히 상속
=> super.name = this.name same- 부모클래스의 속성을 자식클래스에서 같은 이름으로 속성을 덮으면
=> super.name(부모) != this.name(자식)
class Employee {
final String building;
final String name;
Employee(String building, String name)
: this.building = building,
this.name = name;
}
class Engineer extends Employee {
String name;
Engineer(String name, String building) : super(building, name);
void thisprintInfo() {
print("저는 ${this.building}에서 일하는 ${this.name}입니다.");
}
void superprintInfo() {
print("저는 ${super.building}에서 일하는 ${super.name}입니다");
}
}
void main() {
Engineer e = new Engineer("류희재","아파트");
e.superprintInfo();
e.thisprintInfo();
}
결과값
저는 아파트에서 일하는 류희재입니다
저는 아파트에서 일하는 null입니다.