| 首页 | 归档 | 分类 | 标签 | 关于 |
每一个类都隐式地定义了一个接口并实现了该接口,这个接口包含所有这个类的实例成员以及这个类所实现的其它接口。如果想要创建一个 A 类支持调用 B 类的 API 且不想继承 B 类,则可以实现 B 类的接口。
使用 extends 关键字来创建一个子类,并可使用 super 关键字引用一个父类:
子类可以重写父类的实例方法(包括 操作符)、 Getter 以及 Setter 方法。你可以使用 @override 注解来表示你重写了一个成员:
1 | class Television { |
字面意思理解成混合,它可以混合多个类,达到多继承的效果。
当继承多个mixin,mixin内重写覆盖了同一个方法,则调用方法时会命中最后with的mixin对应的方法。如果需要链路调用,使用super。
1 | mixin A { |
on关键字用来限制mixin的使用,这个mixin只能使用在on指定的类或者其子类。
Dart 是一种真正面向对象的语言,所以即便函数也是对象并且类型为 Function,这意味着函数可以被赋值给变量或者作为其它函数的参数。你也可以像调用函数一样调用 Dart 类的实例。
1 | /// bool可以省略,但最好保留,提高可读性 |
在Java中,要实现回调,需要实现一个接口,在Dart中,只需要传递一个回调函数即可。
1 | void setListener(Function listener){ |