(十八)面向对象的三大特性:封装 、继承、多态
面向对象的三大特性
封装、继承、多态
Dart中的类的继承
- 子类使用
extends
关键词来继承父类 - 子类会继承父类里面可见的属性和方法,但是不会继承构造函数
- 子类能复写父类的方法、getter和setter
示例代码–覆写父类的方法
class Person {
String name;
num age;
Person(this.name,this.age);
void printInfo() {
print("${this.name}---${this.age}");
}
work(){
print("${this.name}在工作...");
}
}
class Web extends Person{
Web(String name, num age) : super(name, age);
run(){
print('run');
}
//覆写父类的方法
//可以写也可以不写 建议在覆写父类方法的时候加上 @override
void printInfo(){
print("姓名:${this.name}---年龄:${this.age}");
}
work(){
print("${this.name}的工作是写代码");
}
}
main(){
Web w=new Web('李四',20);
w.printInfo();
w.work();
}
面向对象的三大特性
封装、继承、多态
Dart中的类的继承
- 子类使用
extends
关键词来继承父类 - 子类会继承父类里面可见的属性和方法,但是不会继承构造函数
- 子类能复写父类的方法、getter和setter
示例代码–子类调用父类的方法
class Person {
String name;
num age;
Person(this.name,this.age);
void printInfo() {
print("${this.name}---${this.age}");
}
work(){
print("${this.name}在工作...");
}
}
class Web extends Person{
Web(String name, num age) : super(name, age);
run(){
print('run');
super.work(); //子类调用父类的方法
}
//覆写父类的方法
//可以写也可以不写 建议在覆写父类方法的时候加上 @override
void printInfo(){
print("姓名:${this.name}---年龄:${this.age}");
}
}
main(){
Web w=new Web('李四',20);
// w.printInfo();
w.run();
}