flutter的with、implements、extends区别

3 篇文章 0 订阅
订阅专栏

1.首先从flutter的三种类型定义讲起:class(类)、abstract class(抽象类)、 Mixin(混入)

dart里面没有接口的类型,同时也是单继承语言。class和abstract class与java中的差不多,这里不多说,重点讲一下Mixin。编写成mixin的类,能很好的对代码进行复用,也能让dart实现“伪多重继承”,同时又不会造成多重继承导致的 菱形问题

2.dart的with、implements、extends

extends:能重写父类属性或者方法,同时能通过super引用父类field
implements:必须重写所有属性和方法,且无法调用父类field
with:无需super关键字能直接调用父类方法或者属性

3.例子对比

void main() {
  Vector vector = Vector();
  Vector2 vector2 = Vector2();
  Vector3 vector3 = Vector3();
  vector.paint();
  vector2.paint();
  vector3.paint();
}

class Painter {
  int line = 0;
  paint() {
    print('$line');
  }
}

class Vector extends Painter {
  @override
  int get line => super.line + 1;
  @override
  paint() {
    print("$line");
  }
}

class Vector2 implements Painter {
  @override
  int line;

  @override
  paint() {
    print("$line");
  }
}

class Vector3 with Painter {}

3.控制台输出

在这里插入图片描述
图1

4.dart中尝试菱形伪继承

在这里插入图片描述
提示:The class ‘Vector3’ can’t be used as a mixin because it references 'super’
在这里插入图片描述图2

5.结论

从图1的控制台输出可以看出继承能重写field并引用父类field,实现implements则无法使用super获取父类属性,只能重写,混入能直接复用父类所有属性和方法。

Flutter Dart语法(1)_extendsimplements 、 with的用法与区别
m0_66070694的博客
01-07 421
extends -> mixins -> implements extens在前,mixins在中间,implements最后,接下来看具体的例子。 1. 继承(extends) Flutter中的继承和Java中的继承是一样的: Flutter中的继承是单继承 构造函数不能继承 子类重写超类的方法,要用@override 子类调用超类的方法,要用super Flutter中的继承也有和Java不一样的地方: Flutter中的子类可以访问父类中的所有变量和方法,因为Flutter中没有公
Flutter 接入 PayPal Checkout with OrderId
weixin_44936504的博客
11-29 493
​建议接入PayPal前,一定要了解Payay的支付流程有两种,分别是Client-side integration 和Server-side integration,我就因为一开始没有了解就去撸代码吃了不少苦头,后面发现和服务端接入的不是同一个流程,白干了!!!。
Flutter Dart语法(1):extendsimplements 、 with的用法与区别
weixin_34259159的博客
01-23 2707
Flutter中,有如下三种关系: 继承(关键字 extends) 混入 mixins (关键字 with) 接口实现(关键字 implements) 这三种关系可以同时存在,但是有前后顺序: extends -> mixins -> implements extens在前,mixins在中间,implements最后,接下来看具体的例子。 1. 继承(extends) Flu...
Flutter extendsimplements 、 with的用法与区别
大灰狼的小绵羊哥哥的博客
06-19 1800
Flutter中,有如下三种关系: 继承(关键字 extends) 混入 mixins (关键字 with) 接口实现(关键字 implements) 这三种关系可以同时存在,但是有前后顺序: extends -> mixins -> implements extens在前,mixins在中间,implements最后,接下来看具体的例子。 1. 继承(extends) Flutter中的继承和Java中的继承是一样的: @override super Flutter..
Flutter开发Dart 中的 mixin、extendsimplements
最新发布
我叫柱子哥
07-24 991
Dart 中,mixin、extendsimplements 是面向对象编程中常用的关键字,它们分别用于不同的继承和实现方式。理解它们的用法和区别对于编写高质量、可维护的 Dart 代码至关重要。本文将详细介绍这三个关键字的用法,并通过实例展示它们在实际编程中的应用。
Flutter浅谈extendsimplements、with、extension
油焖茄子 的博客
03-08 1032
Flutter浅谈extendsimplements、with、extension
flutter+Dart 类的继承extends with implements (九)
genispan的专栏
03-10 3262
主要涉及到三个关键字 extends、 with、 implementsextends是类的继承中最普遍的方式,如要结合后面两个关键字使用,根据文档,需要保证操作顺序:extends,mixins,implements。示例如下: class ThingsboardAppState extends State<ThingsboardApp> with TickerProviderStateMixin implements TbMainDashboardHolder
Flutter 核心原理 - UI 框架(UI Framework)
csdn_aiyang的博客
03-14 2508
Flutter 它提供了一套Dart API,然后在底层通过OpenGL这种跨平台的绘制库(内部会调用操作系统API)实现了一套代码跨多端。由于Dart API也是调用操作系统API,所以它的性能接近原生。
flutter_test_dio.zip
12-31
class MockDio extends Mock implements Dio {} void main() { test('测试GET请求', () async { final mockDio = MockDio(); when(mockDio.get('https://api.example.com/data')) .thenAnswer((_) async => ...
Flutter开发自定义Plugin的方法示例
08-25
public class FlutterNativeLogPlugin implements MethodCallHandler { / Plugin registration. */ public static void registerWith(Registrar registrar) { final MethodChannel channel = new MethodChannel...
[Flutter] extendsimplements、mixin和 abstract、extension的使用介绍说明
曹世鑫的杂谈
01-12 2155
flutterextendsimplements、mixin和 abstract、extension的使用介绍说明
Flutter extends mixin implements 的关键词优先级的理解
u011866450的专栏
09-27 298
基本优先级 extends > mixin > implements 测试脚本 class First { void doPrint() { print("First"); } } class Second { void doPrint() { print("Second"); } } class Three { void doPrint() { print("Three"); } } class NumP { void doPrint(
Flutter run、attach 调试秒连,规避日志问题
star_nwe的博客
04-02 610
Flutter IDE 调试与手机建立连接,是通过检测 logcat 输出,过滤终端运行的引擎 observatory 调试服务端口链接日志
Flutter Mixins(with)
马志武的博客
06-06 1222
混入 mixins (关键字 with) Flutter 使用的是 Dart 支持 Mixin ,而 Mixin 能够更好的解决多继承中容易出现的问题,如:方法优先顺序混乱、参数冲突、类结构变得复杂化等等。 混入的原则是:相同方法被覆盖了,并且 with 后面的会覆盖前面的。 下面代码 一目了然 main(){ print("------main start--------"); D d = new D(); d.a(); d.b(); d.c(); print("------mai
Flutter弹框封装, 使用with
勤奋的年轻人
01-06 513
弹框使用了混合with 混合就是将一个类的实力给这个widget
flutter和android原生区别
06-28
### 回答1: Flutter是一种跨平台的移动应用开发框架,可以同时在iOS和Android上运行。Flutter使用Dart语言编写,具有热重载功能,可以快速开发高性能、美观的应用程序。Flutter的UI是自己绘制的,不依赖于操作系统的原生控件,因此可以实现高度自定义的UI效果。 Android原生开发是指使用Java或Kotlin编写Android应用程序,使用Android SDK提供的原生控件和API。原生应用程序可以充分利用Android操作系统的功能和性能,但需要针对不同的设备和版本进行适配。 总的来说,Flutter和Android原生开发的区别在于开发语言、UI实现方式和跨平台能力。Flutter使用Dart语言,UI自绘,可以跨平台运行;而Android原生开发使用Java或Kotlin语言,依赖于操作系统的原生控件和API,只能在Android上运行。 ### 回答2: Flutter是一个开源的移动应用开发框架,而Android原生是指使用Java或Kotlin等本地语言编写的应用程序。下面是Flutter和Android原生之间的主要区别: 1. 学习曲线:Flutter使用Dart语言开发,如果你已经熟悉了JavaScript或Java等其他语言,学习Flutter也许会花费你一些时间。但是Flutter的开发文档与工具是易于理解和使用的,所以Flutter的学习曲线相对于Android原生会更加平缓。 2. 性能:Flutter使用自己的渲染引擎来绘制用户界面,其称为“Skia”。与Android原生相比,Flutter在UI性能上可能会有一些优势。Flutter采用了一些复杂的技术来在运行时优化代码,并且可以使用Google的Dart编译器来生成高效的原生代码。 3. 开发效率:Flutter的开发速度相对于Android原生也许更快。由于Flutter的热重载功能,您可以更快地查看您所做的更改,并在不刷新应用程序的情况下保存这些更改。此外,Flutter具有很好的跨平台开发支持,您可以在同一代码库中以相同的方式开发iOS和Android应用。 4. 生态系统:Flutter生态系统中的插件和库数量与Android原生相比仍然不足。但是,越来越多的开发人员和组织机构开发了各种各样的插件和库来帮助Flutter开发人员快速开发应用。 5. 设计自由度:Flutter相对于Android原生提供了更多灵活的设计自由度。Flutter应用程序可以组合使用各种小部件和布局,以创建非常独特的用户界面和动画效果。 综上所述,Flutter和Android原生的区别在于性能、学习曲线、开发效率、生态系统和设计自由度等方面。选择一种适合自己的框架取决于您的具体需求和项目要求,需要根据实际情况进行权衡。 ### 回答3: Flutter(也称为Flutter UI框架)是一个跨平台的移动应用程序开发框架,由谷歌(Google)开发。 它允许开发人员以一种统一的语言(Dart)构建高性能,高保真度的移动应用程序,可在Android和iOS等平台上运行。Flutter基于自己的渲染引擎和框架建立,其中包括许多构建UI的内置组件。Flutter具有以下区别和优势: 1.基于Dart语言:与Java和Kotlin不同,Dart是一种强类型静态语言,也支持动态语言特性。Flutter的完整生态系统都是Dart编写,因此开发人员可以在编写Flutter代码时使用所有Dart的语言特性。 2.完全自定义UI:Flutter的Widget框架提供了大量的预置组件,可以自定义和扩展,使得开发人员可以自由地构建独特的,自定义的UI。 3.高性能:Flutter 框架可以通过达到每秒60帧(FPS)的性能来实现对动画和过渡的支持,这是传统的基于WebView的Hybrid移动应用程序难以匹敌的。 4.快速迭代和快速开发:由于Flutter使用Hot reloading可以快速加载并重新加载UI,因此可以大大减少调试时间和部署时间。 5.跨平台开发:Flutter 允许开发人员在所有平台上构建相同的应用程序,包括Android和iOS,从而实现在延长开发周期的同时实现保证强一致性的开发。 与Flutter相比,Android原生的开发主要集中在Java和Kotlin之上,以使用Android SDK为框架,以构建在Android上原生应用程序。而Android原生的应用程序开发具有以下优势和限制: 1.更快的性能:Android原生应用程序始终是高性能的,因为它们直接在设备上运行而不需要中间层。 2.外观和风格与设备一致:为了确保Android应用程序看起来和操作体验与设备相同,Android原生开发支持通过设置特定的样式,颜色和控件来实现此目的。 3.专业开发支持:Android原生应用程序开发具有良好的集成开发环境,具有权限系统,可提供良好的面向开发人员的支持。 4.固定生态系统:Android原生应用程序必须在特定版本的Android API上运行,这意味着必须使用不同的软件包,类和框架,这可能会引起问题。 总之,Flutter和Android原生应用程序开发是为相同平台开发应用程序的两种不同方法。Flutter提供了快速迭代和跨平台开发的优势,而Android原生应用程序则提供了更快的性能可靠性和与设备外观和风格的一致性优势。根据不同的需求,开发人员可以选择使用适合他们需求的一种或同时使用这两种方式来开发移动应用程序。
写文章

热门文章

  • 无码间串扰的时域和频域条件 32296
  • 使用Chrome开发者工具下载Instagram上的图片 10892
  • GitHub Action自动完成华工疫情打卡、网站自动签到 4802
  • Eclipse 上的okhttp简单运用 2681
  • flutter的with、implements、extends区别 1699

分类专栏

  • flutter 3篇
  • Android 4篇
  • adb 1篇
  • python 3篇
  • Windows

最新评论

  • GitHub Action自动完成华工疫情打卡、网站自动签到

    ReganYue: 前排支持一下,可以的话来我博客看看吧

  • GitHub Action自动完成华工疫情打卡、网站自动签到

    gmac0q: 真不错,运行star运行表情包

  • flutter打包异常You must have a COPYING, LICENSE or UNLICENSE file in the root directory

    大家一起学编程(python): 看君一篇文,少填10个坑

  • flutter打包异常You must have a COPYING, LICENSE or UNLICENSE file in the root directory

    彼 方: 好文,收藏学习了

  • flutter打包异常You must have a COPYING, LICENSE or UNLICENSE file in the root directory

    看,月亮在跳舞: 博主写的好好,一起加油吖

最新文章

  • flutter打包异常You must have a COPYING, LICENSE or UNLICENSE file in the root directory
  • Android多模块引用公用布局导致的资源NoSuchFieldError问题
  • flutter工程pubspec.yaml文件配置解读
2021年7篇
2020年3篇
2019年6篇
2018年1篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家开业商场美陈多少钱海南大型商场创意商业美陈梅州玻璃钢彩绘雕塑玻璃钢仿铜小孩人物雕塑定州玻璃钢雕塑丹阳玻璃钢雕塑收费标准工业玻璃钢雕塑摆件批发玻璃钢鹿雕塑哪家正规玻璃钢雕塑订做哪家好通辽玻璃钢景观雕塑寿光玻璃钢蔬菜雕塑设计济南超市商场美陈海南玻璃钢海豚雕塑定制玻璃钢动物雕塑咨询商场美陈互动装置武威人物玻璃钢雕塑安装杭州定制玻璃钢雕塑供应商河北玻璃钢雕塑定制价格肇庆古代玻璃钢卡通雕塑秦皇岛玻璃钢仿真水果雕塑定制主题玻璃钢卡通雕塑直销价格玻璃钢雕塑工厂商场美陈文章保定玻璃钢雕塑制作温州佛像玻璃钢雕塑宁夏玻璃钢动物雕塑定制营口玻璃钢花盆花器汝南玻璃钢雕塑加工厂家佛山玻璃钢鲸鱼雕塑深圳玻璃钢雕塑订做价格香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化