Dart 知识点 - 继承和多态
继承
Dart 中的继承是单继承,也就是一个类只能有一个直接的父类。默认继承父类 Object 类。使用 extends 关键字,子类会继承父类的属性和方法。
void main() {
Child child = new Child();
child.name = 'Jimmy';
child.sayHi(); // Jimmy say Hi.
}
class Father {
String name = ''; // 属性 - 名称
// 方法名
void sayHi() {
print(this.name + ' say Hi.');
}
}
class Child extends Father {
double height = 0.0;
}
复制代码
混入(Mixin)的语法,允许子类继承父类时混入其他的类。后面再讲解。
Child 继承了 Father 类的方法 sayHi(),那么我们子类中能否使用这个方法呢?答案是能的。这里就涉及到方法重写了。我们在子类中新建一个父类同名的方法 sayHi() 即可,如下:
class Child extends Father {
double height = 0.0;
void sayHi() {
print('Child say Hi');
}
// @override
// void sayHi() {
// print('Child say Hi');
// }
}
复制代码
再次运行代码 child.sayHi(); 就会输出 Child say Hi 的文案了。
你可以为方法重写添加上
@override的关键字,推荐加上关键字的写法,让人知道这个方法在父类上存在的。
多态
多态是同一种行为具有不同表现形式或形态。
优点:
- 消除类型之间的耦合关系
- 可替代性
- 可扩充性
- 接口性
- 灵活性
- 简化性
存在的三个必要条件:
- 继承
- 重写
- 父类引用指向子类对象
void main() {
Animal dog = new Dog();
dog.eat(); // Dog eat meat.
Animal sheep = new Sheep();
sheep.eat(); // Sheep eat grass.
}
class Animal {
void eat() {
print('Animal class eat.');
}
}
class Dog extends Animal {
@override
void eat() {
print('Dog eat meat.');
}
}
class Sheep extends Animal {
@override
void eat() {
print('Sheep eat grass.');
}
}
复制代码
比如上面的示范。Dog 和 Sheep 都继承于 Animal,两者都重写了 Animal 中的 eat() 方。上面声明的两个对象实例都是父类的 Animal,但是实际指向的都是子类的一个对象。
Animal dog = new Dog();
Animal sheep = new Sheep();
复制代码
往期精彩推荐
如果读者觉得文章还可以,不防一键三连:关注➕点赞➕收藏
分类:
flutter
Flutter 相关的文章
关注专栏
多内容聚合浏览、多引擎快捷搜索、多工具便捷提效、多模式随心畅享,你想要的,这里都有!
评论
相关推荐
-
1年前
- **1422
- **16
- **3
-
14天前
- **4459
- **26
- **6
-
9月前
Flutter 动画组件那么多,记不住不会用怎么办?我都给你整理好了,收藏吧!
- **3634
- **58
- **评论
-
4月前
- **3540
- **22
- **5
-
3月前
- **1.7w
- **114
- **4
-
4月前
- **6358
- **38
- **10
-
1月前
- **4539
- **29
- **4
-
4月前
- **2013
- **12
- **评论
-
11月前
Flutter 入门与实战(七十一):GetX — Flutter 开发的百宝箱
- **3716
- **46
- **16
-
8月前
- **8071
- **36
- **3
-
10月前
Flutter入门与实战(七十九):稳住了,别抖!—— 看GetX 的Worker如何防抖
- **2145
- **32
- **1
-
1年前
Flutter 入门与实战(十四):App页面路由及路由拦截实现
- **2083
- **22
- **6
-
9月前
- **2596
- **28
- **3
-
9月前
- **8865
- **122
- **12
-
7月前
- **7.8w
- **214
- **73
-
8天前
- **6251
- **34
- **24
-
1月前
- **6084
- **66
- **6
-
3年前
- **15.8w
- **4758
- **177
-
7月前
做出 GIF 图片的效果 —— Flutter 交错动画(Staggered Animation)简介
- **3573
- **20
- **评论
-
1月前
- **6894
- **28
- **5
相关文章
目录
下一篇
\