1. 写在前面
在上篇文章中介绍了Dart
中的类方法
和对象操作符
,那么现在就继续来学习 Dart
中的继承
吧。
【Flutter】 Android Studio 安装第三方模拟器—网易MuMu
【Flutter】项目运行报错Failed to find Build Tools revision 29.0.2
【Flutter】flutter doctor 报错Android license status unknown. Run `flutter doctor --android-licenses‘
【Flutter】如何新建项目,运行你的第一个 flutter 工程项目
【Flutter】Dart中的var、final 和 const基本使用
【Flutter】Dart的数据类型list&Map(数组和字典)
【Flutter】Dart的方法中的可选参数、方法作为参数传递
【Flutter】Dart的工厂构造方法&单例对象&初始化列表
2. 继承
在面向对象的开发语言当中,继承是经常听到的一个词语,在 iOS 中我们也是经常用继承来进行代码的复用,那么在 dart
中的继承是如何定义和使用的呢?
- 在 Dart 中
- 使用 extens 继承一个类
- 子类会继承除了构造方法以外的属性和方法
- dart是单继承
那么接下来就具体看看代码吧!先定义一 个Person
类,Student
继承Person
类。
class Student extends Person {
study(){
print("好好学习,天天向上");
}
}
class Person {
String? name;
int? age;
int? _height;
//计算属性
bool get isRight => _height! > 180;
run(){
print("run.....");
}
}
2.1 子类继承父类的属性和方法
- 子类继承父类的属性和方法
void main() {
Student stu = Student();
stu.name = "reno";
stu.run();
stu._height = 181;
stu.study();
print(stu.isRight);
}
- 打印结果
2.2 子类重写父类方法
- 子类重写父类方法
@override
run(){
print("Student run..");
}
重写父类的方法和 Swift
一样都是使用override
来重写。
2.3 多态
- 多态
//多态
Person stu = Student();
if(stu is Student) {
stu.name = "reno";
stu.run();
stu._height = 181;
stu.study();
print(stu.isRight);
}
- 测试结果
所有的类都是继承自 Object
所以Person
类相当于下面这样:
class Person extends Object{
}
Object
里面有个方法:toString()
类似于 OC
中的description
,现在去重写一下toString()
:
toString()
默认情况下是返回super.toString()
的值,这个返回值也可以自己定义
2.4 关于构造方法
- 构造方法
父类的默认构造方法子类是自带继承过去的,但是父类的带参数的构造方法,带名称的构造方法,子类不默认继承,需要手动去实现,如果有多个,子类手动实现其中一个就可以,如下:
子类没有实现除默认以外的构造方法,会报错,实现其中一个即可了。
3. 写在后面
关注我,更多内容持续输出
🌹 喜欢就点个赞吧👍🌹
🌹 觉得有收获的,可以来一波 收藏+关注,以免你下次找不到我😁🌹
🌹欢迎大家留言交流,批评指正,
转发
请注明出处,谢谢支持!🌹