Dart语法-extends/implements/with区别

本文深入探讨了Flutter中的继承(extends)与实现(implements)机制,对比Java的单继承特性,详细讲解了构造函数、方法重写、父类访问限制等关键概念。同时,介绍了mixin如何解决单继承限制,及其与extends的区别。

继承 (extends)

与java相比:

  1. 都是单继承
  2. 构造函数不能继承
  3. 子类重写父类的方法需要加关键字 @override
  4. 子类调用父类的方法,要用 super
  5. 子类不能访问父类私有的方法和属性,(flutter中使用 “_” 表示该方法或属性为私有,不存在public,private等关键字)

实现 ( implements)

  1. flutter中没有接口(interface)这种定义
  2. 每个类都可以被当做接口

mixin(with)

mixin的加入就是为了解决单继承的问题。那mixin和extends都有哪些区别?

  1. with后可以接多个类
  2. 被mixin指定的类不可以有构造方法,因为混入多个父类,父类的多个构造函数会产生混乱
  3. 可以直接用mixin 指定一个类为mixin类
  4. mixin了多个类,同名方法执行取后mixin的类

三者可同时存在,但是有先后顺序。
extends -> with -> implements

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值