【Flutter】Dart中的Mixins混入你知道是什么吗?
1. 写在前面
在上篇文章中介绍了Dart
中的抽象类
和implements
,那么现在就继续来学习 Dart
中的Mixins
的混入。
【Flutter】苹果Mac电脑配置flutter开发环境
【Flutter】 Android Studio 安装第三方模拟器—网易MuMu
【Flutter】项目运行报错Failed to find Build Tools revision 29.0.2
【Flutter】flutter doctor 报错Android license status unknown. Run `flutter doctor --android-licenses‘
【Flutter】如何新建项目,运行你的第一个 flutter 工程项目
【Flutter】Dart中的var、final 和 const基本使用
【Flutter】Dart数据类型之num
【Flutter】Dart数据类型之String
【Flutter】Dart的数据类型list&Map(数组和字典)
【Flutter】Dart的方法与箭头函数
【Flutter】Dart的方法中的可选参数、方法作为参数传递
【Flutter】Dart中的匿名函数、闭包
【Flutter】Dart中的类和对象
【Flutter】Dart中的构造函数
【Flutter】Dart的工厂构造方法&单例对象&初始化列表
【Flutter】Dart的类方法和对象操作符
【Flutter】Dart中的继承
【Flutter】Dart中的抽象类和接口
2. 什么是混入?
什么是Mixins?说白了就是多继承
2.1 混入举例
- with
class D1 extends A1 with B1,C1 {d1() => print("D1...");}
class A1 {a1() => print("A1...");
}
class B1 {b1() => print("B1...");
}
class C1 {c1() => print("C1...");
}
这里 with
是混入
的意思,D1继承extends A1
,然后混入with B1,C1
,以此达到多继承的目的。
- 混合的对象是类
- 可以混合多个
void main() {mixinTest();
}
mixinTest(){D1 d = D1();d.d1();d.a1();d.b1();d.c1();
}
- 打印结果如下:
混入多个类,这对方法复用带来的极大的便利性,破除了众多限制,不需要实例化混入的类,也不需要混入的类单例化。
2.2 混入同名方法会这样?
如果多个混入的类,有同名的方法,调用这个方法,到底是调用谁的呢?
class D1 extends A1 with B1,C1 {d1() => print("D1...");}
class A1 {a1() => print("A1...");
}
class B1 {a1() => print("B1...");
}
class C1 {a1() => print("C1...");
}
- 测试结果
从打印的结果来看,如果混入的类里面有同名的方法,就是谁最后混入,调用的就是谁的方法,前面的会被后面的覆盖掉!
- 作为混入的类,是不能实现构造方法
作为混入的类,是不能实现构造方法,会报错,如下:
2.3 混入的简写
- 混入还可以下面这样写
class D1 = A1 with B1,C1;
// class D1 extends A1 with B1,C1 {//
// }
只要 D1 中没有属性和方法就可以这样简便的写。
2. 4 操作符重载
- 操作符重载
正常情况下,对象是不可以比较的,会报错,如下:
- 重载操作符代码
operatorTest(){OperatorClass op1 = OperatorClass(20);OperatorClass op2 = OperatorClass(18);//正常情况下 是不可以比较对象的,需要重载操作符print(op1 > op2);}
class OperatorClass {int age;OperatorClass(this.age);//重载操作符bool operator > (OperatorClass other) => this.age > other.age;
}
3. 写在后面
关注我,更多内容持续输出
- CSDN
- 掘金
- 简书
【Flutter】Dart中的Mixins混入你知道是什么吗?相关推荐
- Dart中的mixins
/* mixins的中文意思是混入,就是在类中混入其他功能.在Dart中可以使用mixins实现类似多继承的功能,with关键字因为mixins使用的条件,随着Dart版本一直在变,这里讲的是Dart ...
- Vue中使用mixins混入
mixins在Vue中的用法 一.mixins混入 混入(mixins)提供了一种非常灵活的方式,来分发vue组件中的可服用功能.一个混入对象可以包含任意的组件选项(vue在script的部分).当组 ...
- Flutter Dart 中List的初始化
List的初始化有多种方式 main(){List<int> myList=[];myList.add(1);print(myList[0]); }
- Dart中抽象类 多态以及接口
Dart中抽象类:Drat抽象类主要是用于定义标准,子类可以继承抽象类,也可以实现抽象类接口. 1.抽象类通过abstract关键字来定义 2.Drat中的抽象方法不能用abstract声明,Dart ...
- TypeScript Mixins 混入
简介 TS 中Mixins混入类是与vue中的mixins混入语法,简单来说也是对多个对象,类等的合并. 参考:https://www.tslang.cn/docs/handbook/mixins.h ...
- Flutter 开发中最实用的 Dart 语法知识
零.前言 都说 Flutter 是谷歌的新宠,这段时间有空,就学习了一下 Dart 语法.本篇文章将会详细全面的介绍 Dart 常用语法. 一.变量和常量 在 Drat 语言中,一切皆对象,对象的默认 ...
- 如何在 Flutter 和 Dart 中检查数字字符串
如何在 Flutter 和 Dart 中检查数字字符串 数字字符串只是字符串格式的数字. 数字字符串示例: '123', '0.123', '4.234,345', '-33.33', '+44.44 ...
- dart开发Android服务,关于android:在Flutter应用中使用由swagger生成的Dart代码生成的Web服务...
我正在尝试使用Flutter开发一个移动应用程序,我使用swagger生成了包含所有Web服务的Dart文件代码生成.我想从Web服务中获取所有用户的列表. 在屏幕上,我想为每个用户显示:图像,名字, ...
- [Dart] Flutter开发中的几个常用函数
几个Flutter开发中的常用函数 /** 返回当前时间戳 */static int currentTimeMillis() {return new DateTime.now().millisecon ...
- Flutter --- Dart简介
一.简介 由Google主导开发,于2011年10月公开.它的开发团队由Google Chrome浏览器V8引擎团队的领导者拉尔斯·巴克主持,目标在于成为下一代结构化Web开发语言.类似JavaScr ...
最新文章
- HTML5中figure标签使用实例
- python学习之内置函数(二)
- linux GD库安装
- mantelhean.test r语言_请教如何将mantel test报告性的结果转化为表格。
- Java的代理模式之静态代理和动态代理
- makefile之目标与依赖(1)
- hadoop单节点配置并且统计单词
- 云计算发展备受瞩目的五大方向
- vagrant 常用的几个命令
- hive执行更新和删除操作
- java getname threads_Java8并发教程:Threads和Executors
- 计算机桌面组成部分教案,三年级第6课 《认识桌面》优秀教案
- 蓝桥杯C/C++B组历届真题刷题【合集】
- 什么是Linux内核?它有什么功能?
- niushop分销版开源商城旗舰版v3.7商城源码旗舰版PJ版
- 2018ICPC焦作站赛后总结
- Jmeter5.x线程组setUp-tearDown和调度器实战
- Three.js 实现3D模拟太阳系
- 使用ChatGPT工具阅读文献的实战教程
- Ubuntu16.04 安装配置深度学习配置:GPU加速 Cuda+cudnn+opencv+caffe
热门文章
- HTML5 20180918
- 【开源GPS追踪】 之 服务器端opengts安装
- ONVIF流媒体播放流程
- JSADS-日志对象MyLogger
- 小伯利恒之歌(音乐)-Oh Little Town of Bethlehem(Virtual Tour)一次真实的旅行,看看耶稣的家乡...
- python实训day7
- 史上最简单的SpringCloud教程 | 第九篇: 服务链路追踪(Spring Cloud Sleuth)(Finchley版本)...
- 每日的代码量真的重要么?
- 正则表达式与java String.split()
- day25,多继承,组合,接口,抽象类和鸭子型