flutter的with、implements、extends区别

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.控制台输出

在这里插入图片描述

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值