/*
类的继承 (封装 多态 继承)
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(); // 张三的工做是写代码
}