我来自c#背景,仍在学习Dart。我对飞镖继承和泛型感到困惑。
我的要求是这样的:
具有属性"id"的基类,称为 A。
定义方法"speak(("的接口,称为B。
这两件事必须是正交的。一些具体的类将扩展 A,有些将实现 B,有些将同时具有两者。
现在。。。。我想要一种方法:
int mymethod<T extends A and also implements B>(T item){
item.speak();
return item.id;
};
这可能吗? 我发现自己必须构建继承链(B 扩展 A(才能执行泛型类型参数约束。 除了非常简单的集合泛型之外,没有多少例子。 有人可以指出我对继承和泛型系统的解释,这将为我提供一个清晰的概念模型吗?
可以实现多个接口。
只需写class SomeClass implements Interface1, Interface2{...}
.
遗憾的是,创建需要实现多个接口的泛型是不可能的,如此处所述。