Dart语法-extends/implements/with区别

继承 (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

你可能感兴趣的:(flutter,dart,dart,with,extends,implements)