/*
類的繼承 (封裝 多態 繼承)
1 子類使用extends 關鍵詞 來繼承父類
2 子類會繼承父類裏可見的屬性和方法 可是不會繼承構造函數
3 子類能複寫父類的方法 getter 和 setter
*/
class Person {
String name;
int age = 20;
Person(this.name, this.age);
Person.xxx(this.name, this.age);
void printInfo() {
print("${this.age}----${this.name}");
}
work() {
print("${this.name}在工做...");
}
}
class Web extends Person {
String sex;
Web(String name, int age, String sex) : super(name, age) {
this.sex = sex;
}
// Web(String name, int age, String sex) : super.xxx(name, age) {
// this.sex = sex;
// }
run() {
print("${this.name}---${this.age}---${this.sex}");
super.work(); // 子類調用父類的方法
}
// 覆寫父類的方法
@override // 能夠寫 也能夠不寫,建議 寫上
void printInfo() {
print("姓名:${this.name}----年齡:${this.age}");
}
@override
work() {
print(" ${this.name}的工做是寫代碼");
}
}
void main() {
Web w = new Web('張三', 12, '男');
print(w.name); // 張三
// w.printInfo(); // 12----張三
w.run(); // 張三---12---男
// w.work(); // 張三在工做...
// w.printInfo(); // 姓名:張三----年齡12
// w.work(); // 張三的工做是寫代碼
}