1.继承 extends
- Flutter 中的继承是
单继承
。 - 子类可以通过
@override
来重写父类方法 构造函数不能被继承
- 没有共有和私有访问符,可以直接访问超类中所有变量和方法
- 一般情况下,带下划线属性表示私有变量
2.声明接口(abstract)
3.接口实现(implements)
没有(interface)关键字,但每一个类都是一个隐式的接口。
完整流程
1.声明一个接口(abstract)
abstract class Worker {
void doWork();
}
2.继承
class Teacher extends Worker {
void doWork() {
print("老师在上课");
}
}
class Engineer extends Worker {
void doWork() {
print("工程师在工作");
}
}
3.实现(implements)
class Student extends Teacher implements Worker {
@override
void doWork() {
// TODO: implement doWork
super.doWork();
}
}
4.使用
Student()
..doWork();
混合案例
abstract class Worker {
void doWork();
}
abstract class CanFixComputer {
void fixComputer();
}
abstract class CanProgramming {
void programming();
}
class Engineer extends Worker {
void doWork() {
print("工程师在工作");
}
}
class SoftwareEngineer extends Engineer
implements CanFixComputer, CanProgramming {
@override
void fixComputer() {
print('软件工程师修电脑');
}
@override
void programming() {
print('设计软件');
}
}
链式编程
SoftwareEngineer()
..doWork()
..fixComputer()
..programming();
// 打印结果:
/*
I/flutter (13184): 工程师在工作
I/flutter (13184): 软件工程师修电脑
I/flutter (13184): 设计软件
*/
网友评论