上代码

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的理解相关推荐

  1. flutter/dart通过ffi调用rust代码

    ffi简介 FFI(Foreign Function Interface)是用来与其它语言交互的接口,在有些语言里面称为语言绑定(language bindings),Java 里面一般称为 JNI( ...

  2. Flutter 动态化 | Flutter + Dart 三端一体化动态化平台实践

    导读 FairPushy 是基于Flutter+Dart三端一体化打造的动态更新平台主要由Web + Server + Native全部使用Flutter+Dart编写,为Flutter动态化场景提供 ...

  3. 用Flutter + Dart快速构建一款绝美移动App

    作者 | Wojciech Kuroczycki 译者 | 弯月 来源 | CSDN(ID:CSDNnews) 如今,与前端或移动相关的新框架层出不穷.所有从事Web开发的人都应该熟悉各种目不暇接的新 ...

  4. Flutter切换tab后保留tab状态

    Flutter切换tab后保留tab状态 概述 Flutter中为了节约内存不会保存widget的状态,widget都是临时变量.当我们使用TabBar,TabBarView是我们就会发现,切换tab ...

  5. flutter offset_Flutter 仿微信界面聊天室 | 基于 (Flutter+Dart) 聊天实例

    1.项目介绍 Flutter是目前比较流行的跨平台开发技术,凭借其出色的性能获得很多前端技术爱好者的关注,比如阿里闲鱼,美团,腾讯等大公司都在投入相关案例生产使用.flutter_chatroom项目 ...

  6. 不用掉一根头发!用 Flutter + Dart 快速构建一款绝美移动 App

    作者 | Wojciech Kuroczycki 译者 | 弯月 出品 | CSDN(ID:CSDNnews) 如今这个时代,与前端或移动相关的新框架层出不穷.所有从事Web开发的人都应该熟悉各种目不 ...

  7. flutter图片聊天泡泡_基于 Flutter+Dart 聊天实例 | Flutter 仿微信界面聊天室

    1.项目介绍 Flutter是目前比较流行的跨平台开发技术,凭借其出色的性能获得很多前端技术爱好者的关注,比如阿里闲鱼,美团,腾讯等大公司都有投入相关案例生产使用. flutter_chatroom项 ...

  8. android中方法调用super(..)的相关知识

    java中的多态有重写 方法被子类重写后 父类的原方法就会被隐藏 当你又需要调用父类所定义的原方法  这个时候就可以用super来调用 super调用指向了父类,在一些调用里可以很巧妙的利用,比如监听 ...

  9. 【Flutter】Flutter 开发环境搭建 ( Android Studio 下 Flutter / Dart 插件安装 | Flutter SDK 安装 | 环境变量配置 | 开发环境检查 )

    文章目录 一.Flutter 学习资料 二.Flutter 开发环境搭建 三.Android Studio 环境安装 Flutter / Dart 插件 四.下载 Flutter SDK 五.设置 F ...

最新文章

  1. python第三方库有哪些常用的、请列举15个-阿里巴巴Python开发工程师面试题
  2. PL/SQL Developer 和 instantclient客户端快速安装配置(图文)
  3. 如果机房的线路老化了要怎么做才对?
  4. no Alcoholic drink anymore
  5. eclipse安装lombok后无法启动解决办法
  6. 初识ABP vNext(2):ABP启动模板
  7. python email模块写邮件_python常用模块email----创建简单的文本邮件并发送
  8. 足球点球 html5,身为西甲第一点球手,C罗只有5次让点经历,难怪点球破门过百...
  9. Android NDK开发入门学习笔记(图文教程,极其详尽)
  10. 基于POLARDB数据库的压测实践
  11. cmd imp导入dmp文件_cmd 导入oracle数据的dmp文件
  12. postgresql cast转换类型
  13. 如何进行Java EE性能测试与调优
  14. Linux的哲学思想
  15. l3119双闪_打印机进纸灯和墨水灯双灯齐闪 解决方法
  16. 计算机硬件维修书,计算机硬件维修手册
  17. 我有一个 APP 创意,如何将其实现?
  18. Maya界面编程入门:在Maya中使用Qt
  19. Jsonviewer2 for Notepad++ 64 bit/位
  20. 现在能聊天的机器人都有哪些?

热门文章

  1. 深度学习-扩张卷积(dilated convolution)
  2. 中国的芯片产业距崛起还有多远?
  3. 美容美发美甲店做活动效果提升30%的营销方案18个套路
  4. Windows查看及修改tomcat端口
  5. Excel 合并单元格 ,换行,过滤空单元格
  6. 生成服务器证书 启用HTTPS 生成自签名证书
  7. cdn的费是多少_通常的cdn收费标准介绍
  8. 计算机网络分布式处理的应用,谈计算机网络发展及其应用研究
  9. 蛋白质组学研究的经典方法:双向电泳技术解读
  10. eCognition9.0安装教程