实现接口:
abstract class A{
printA();
}
abstract class B{
printB();
}
class AA implements A , B{
@override
printA() {
print("AAA");
}
@override
printB() {
print("BBB");
}
}
如果要集成多个类,用mixins,关键字mixins
class A{
String info = "this is A";
printA(){
print("this is A");
}
}
class B{
printB(){
print("this is B");
}
}
class C with A , B{
//注意 A类B类不能继承其他类、且不能有构造函数
}
void main() {
C c = new C();
print(c.info);
c.printA();
c.printB();
}
泛型
class C with A , B{ String getData1(String str){ return str; } int getData2(int str){ return str; } T getData<T>(T value){ return value; } } void main() { C c = new C(); c.getData<String>("Hello World"); c.getData<int>(12); }
class MyList<T>{ List list = <T>[]; void add(T value){ this.list.add(value); } List getList(){ return this.list; } } void main() { MyList li = MyList();//这样初始化可以传入不同类型参数 li.add(17); li.add(16); li.add(18); li.add("zhangsan"); li.add("wangwu");
MyList lii = MyList<String>();//这样初始化,只能传入固定类型数据 lii.add("zhangsan"); lii.add("wangwu"); }
abstract class Catch<T>{ getByKey(String key); void setByKey(String key, T value); } class FileCatch<T> implements Catch<T>{ @override getByKey(String key) { return null; } @override void setByKey(String key, T value) { print("我是内存缓存,key=${key}===value=${value}"); } }
FileCatch fileCatch = new FileCatch<String>(); fileCatch.setByKey("index", "我是数据");