flutter Dart Mixin后关于调用super的理解
上代码
abstract class BaseClass {funcPrint() {print("BaseClass\n");}
}mixin A on BaseClass {funcPrint() {print("A\n");super.funcPrint();}
}mixin B on BaseClass {funcPrint() {print("B\n");super.funcPrint();}
}class C extends BaseClass {funcPrint() {print("C\n");super.funcPrint();}
}class D extends C with A, B {}testMixin() {D d = D();d.funcPrint();
}
执行testMixin方法的打印结果:
B
A
C
BaseClass
是不是很懵???
好, 现在我们把上面代码里关于super的调用都注掉, 重新运行, 打印结果是什么呢?
abstract class BaseClass {funcPrint() {print("BaseClass\n");}
}mixin A on BaseClass {funcPrint() {print("A\n");//super.funcPrint();}
}mixin B on BaseClass {funcPrint() {print("B\n");//super.funcPrint();}
}class C extends BaseClass {funcPrint() {print("C\n");//super.funcPrint();}
}class D extends C with A, B {}testMixin() {D d = D();d.funcPrint();
}
结果是:
B
关于 mixin 你可能知道: 相同方法会被覆盖,并且 with 末尾的会覆盖前面的。
但是 mixin 后的 super 是谁呢?
mixin 最终会生成一个继承链, 下面这样
从下到上, 一级一级继承关系, 图片上很清楚的看到 class 对应的 super 是谁了.
现在打开 super 调用, 是不是就明白这个调用顺序了呢.
flutter Dart Mixin后关于调用super的理解相关推荐
- flutter/dart通过ffi调用rust代码
ffi简介 FFI(Foreign Function Interface)是用来与其它语言交互的接口,在有些语言里面称为语言绑定(language bindings),Java 里面一般称为 JNI( ...
- Flutter 动态化 | Flutter + Dart 三端一体化动态化平台实践
导读 FairPushy 是基于Flutter+Dart三端一体化打造的动态更新平台主要由Web + Server + Native全部使用Flutter+Dart编写,为Flutter动态化场景提供 ...
- 用Flutter + Dart快速构建一款绝美移动App
作者 | Wojciech Kuroczycki 译者 | 弯月 来源 | CSDN(ID:CSDNnews) 如今,与前端或移动相关的新框架层出不穷.所有从事Web开发的人都应该熟悉各种目不暇接的新 ...
- Flutter切换tab后保留tab状态
Flutter切换tab后保留tab状态 概述 Flutter中为了节约内存不会保存widget的状态,widget都是临时变量.当我们使用TabBar,TabBarView是我们就会发现,切换tab ...
- flutter offset_Flutter 仿微信界面聊天室 | 基于 (Flutter+Dart) 聊天实例
1.项目介绍 Flutter是目前比较流行的跨平台开发技术,凭借其出色的性能获得很多前端技术爱好者的关注,比如阿里闲鱼,美团,腾讯等大公司都在投入相关案例生产使用.flutter_chatroom项目 ...
- 不用掉一根头发!用 Flutter + Dart 快速构建一款绝美移动 App
作者 | Wojciech Kuroczycki 译者 | 弯月 出品 | CSDN(ID:CSDNnews) 如今这个时代,与前端或移动相关的新框架层出不穷.所有从事Web开发的人都应该熟悉各种目不 ...
- flutter图片聊天泡泡_基于 Flutter+Dart 聊天实例 | Flutter 仿微信界面聊天室
1.项目介绍 Flutter是目前比较流行的跨平台开发技术,凭借其出色的性能获得很多前端技术爱好者的关注,比如阿里闲鱼,美团,腾讯等大公司都有投入相关案例生产使用. flutter_chatroom项 ...
- android中方法调用super(..)的相关知识
java中的多态有重写 方法被子类重写后 父类的原方法就会被隐藏 当你又需要调用父类所定义的原方法 这个时候就可以用super来调用 super调用指向了父类,在一些调用里可以很巧妙的利用,比如监听 ...
- 【Flutter】Flutter 开发环境搭建 ( Android Studio 下 Flutter / Dart 插件安装 | Flutter SDK 安装 | 环境变量配置 | 开发环境检查 )
文章目录 一.Flutter 学习资料 二.Flutter 开发环境搭建 三.Android Studio 环境安装 Flutter / Dart 插件 四.下载 Flutter SDK 五.设置 F ...
最新文章
- python第三方库有哪些常用的、请列举15个-阿里巴巴Python开发工程师面试题
- PL/SQL Developer 和 instantclient客户端快速安装配置(图文)
- 如果机房的线路老化了要怎么做才对?
- no Alcoholic drink anymore
- eclipse安装lombok后无法启动解决办法
- 初识ABP vNext(2):ABP启动模板
- python email模块写邮件_python常用模块email----创建简单的文本邮件并发送
- 足球点球 html5,身为西甲第一点球手,C罗只有5次让点经历,难怪点球破门过百...
- Android NDK开发入门学习笔记(图文教程,极其详尽)
- 基于POLARDB数据库的压测实践
- cmd imp导入dmp文件_cmd 导入oracle数据的dmp文件
- postgresql cast转换类型
- 如何进行Java EE性能测试与调优
- Linux的哲学思想
- l3119双闪_打印机进纸灯和墨水灯双灯齐闪 解决方法
- 计算机硬件维修书,计算机硬件维修手册
- 我有一个 APP 创意,如何将其实现?
- Maya界面编程入门:在Maya中使用Qt
- Jsonviewer2 for Notepad++ 64 bit/位
- 现在能聊天的机器人都有哪些?