主要涉及到三个关键字 extends、 with、 implements 。
extends是类的继承中最普遍的方式,如要结合后面两个关键字使用,根据文档,需要保证操作顺序:extends,mixins,implements。示例如下:
class ThingsboardAppState extends State
with TickerProviderStateMixin
implements TbMainDashboardHolder
1 继承(extends) dart中的继承规则:
- 使用extends关键词来继承父类
- 子类会继承父类里面可见的属性和方法 但是不会继承构造函数
- 子类能复写父类的方法 getter和setter
- 子类重写超类的方法,要用@override
- 子类调用超类的方法,要用super
- 子类可以继承父类的非私有变量 (类中私有变量和函数的定义:名称前面带_)
- 作为mixins的类只能继承自Object,不能继承其他类
- 作为mixins的类不能有构造函数
- 一个类可以mixins多个mixins类
- mixins不是继承,也不是接口,而是一种全新的特性。
定义一个工厂类的示例代码:
abstract class TickerProvider {
/// Abstract const constructor. This constructor enables subclasses to provide
/// const constructors so that they can be used in const expressions.
const TickerProvider();
/// Creates a ticker with the given callback.
///
/// The kind of ticker provided depends on the kind of ticker provider.
@factory
Ticker createTicker(TickerCallback onTick);
}
子类实现的示例代码:
mixin TickerProviderStateMixin on State implements TickerProvider {
Set? _tickers;
@override
Ticker createTicker(TickerCallback onTick) {
if (_tickerModeNotifier == null) {
// Setup TickerMode notifier before we vend the first ticker.
_updateTickerModeNotifier();
}
///...
混合继承类的定义:
class ThingsboardAppState extends State
with TickerProviderStateMixin
implements TbMainDashboardHolder
【flutter学习|flutter+Dart 类的继承extends with implements (九)】
推荐阅读
- flutter学习|FLUTTER PUB GET失败(八)
- 库的使用|RxPermissions 权限请求框架使用
- Android面试超级攻略,全面攻破技术疑难及面试痛点吾爱fen享
- 2022 Google 游戏开发者峰会来啦!
- windows|Windows Subsystem for Android 下载地址,在 Windows 11 上运行 Android 系统
- android|android autosize原理,(原创)AndroidAutoSize屏幕适配工具介绍
- docker|使用 GB28181.Solution + ZLMediaKit + MediaServerUI 进行摄像头推流和播放
- EventBus 3.0 源码分析
- java|JetBrains IDE/Android Studio 翻译插件,支持中英互译、单词朗读。