继承 (extends)
- Flutter中的继承是 单继承
- 构造函数不能继承
- 子类重写超类的方法,要用
@override
- 子类调用超类的方法,要用
super
- Flutter中的子类可以访问父类中的所有变量和方法,因为Flutter中没有公有、私有的区别
混合 mixins (with)
- mixins的对象是类
- mixins绝不是继承,也不是接口,而是一种全新的特性
- 可以mixins多个类
- mixins的使用需要满足一定条件:
- mixins类只能继承自object
- mixins类不能有构造函数
- 一个类可以mixins多个mixins类
- 可以mixins多个类,不破坏Flutter的单继承
实现原理: Dart中的mixin通过创建一个新类来分层实现mixin在超类之上创建新类,因此在如何解析查找方面没有歧义。
mixins的类型就是其超类的子类型
接口实现(implements)
所以在Flutter中:
- class 就是 interface
- 当class被当做interface用时,class中的方法就是接口的方法,需要在子类里重新实现,在子类实现的时候要加@override
- 当class被当做interface用时,class中的成员变量也需要在子类里重新实现。在成员变量前加@override
- 实现接口可以有多个
网友评论