掌握 Flutter:Dart-类基础知识详解
发表时间: 2018-12-13 22:26
本文不适合小白与非 IT 相关人员阅读。
Dart 与单继承,C++ 小伙伴注意了,实现类似多继承功能的是使用 Mixin(混入)来实现的,即单个基类(超类、父类)加 N 个 Mixin。
形式如下:
// 基类class Person { String name; Person(name):name = name {}}// Mixinabstract class Boy { // 不要实现构造方法}// Mixinabstract class Girl { // 不要实现构造方法}// 子类实现继承与 Mixinclass Kid extends Person with Boy, Girl { int age; // 初始化顺序: 初始化变量在前, super 在后 Kid(name, age) : age = age, super(name) { }}main() { var kid = Kid('zwei', 12); print(kid.name); // zwei print(kid.age); // 12}
上述过于复杂,关注重要的点即可,具体看不懂的地方,后续文章会慢慢跟上。
获取个实例:
// 基类class Person { String name; // 默认值 int age = 18; Person(name):name = name {} void sayGood() { print('good'); }}main() { var person = Person('zwei'); print(person.name); // zwei print(person?.age); // 18 person.sayGood(); // good print('${person.runtimeType}'); // Person}
不用 new,多好不是?
获取属性方法如之前描述:person.name,或者使用 person?.age 。
调用方法则:person.sayGood();传参自不用说了。
打印类型:person.runtimeType那个${}JSer 应该很熟悉了,就是字符串内部插值。
// 注意语法,以及构造函数需要是 const 的。class Bird { final size = 24; const Bird();}main() { var bird1 = const Bird(); var bird2 = const Bird(); print(bird1 == bird2); // true}
使用 const 来确保两个实例是一模一样的。
然后类还有其他多种构造函数,下期写上。
下期:类构造函数。