Dart接口的实现
Dart 语言并没有提供 interface 关键字,但是每一个类都隐式地定义了一个接口。
import 'dart:math';
abstract class Shape {
factory Shape(String type) {
if (type == 'circle') return Circle(2);
if (type == 'square') return Square(2);
throw 'Can\'t create $type.';
}
num get area;
}
class Circle implements Shape {
final num radius;
Circle(this.radius);
num get area => pi * pow(radius, 2);
}
class Square implements Shape {
final num side;
Square(this.side);
num get area => pow(side, 2);
}
class CircleMock implements Circle {
num area;
num radius;
}
main() {
final circle = Shape('circle');
final square = Shape('square');
print(circle.area);
print(square.area);
}
扩展 Circle 类,增加一个 CircleMock:
class CircleMock implements Circle {}
将会看到一个 "Missing concrete implementations" 的错误,添加两个实例变量 area 和 radius 即可修复这个问题
class CircleMock implements Circle {
num area;
num radius;
}
版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/16/implementation-of-dart-interface/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。
THE END
0
二维码
打赏
海报
Dart接口的实现
Dart 语言并没有提供 interface 关键字,但是每一个类都隐式地定义了一个接口。
import 'dart:math';
abstract class Shape {
factory Shape(St……
文章目录
关闭
共有 0 条评论