掌握 Flutter:Dart-类基础知识详解

发表时间: 2018-12-13 22:26

本文不适合小白与非 IT 相关人员阅读。


继承与 Mixin

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}

上述过于复杂,关注重要的点即可,具体看不懂的地方,后续文章会慢慢跟上。


Person 例子

获取个实例:

// 基类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

// 注意语法,以及构造函数需要是 const 的。class Bird { final size = 24; const Bird();}main() { var bird1 = const Bird(); var bird2 = const Bird(); print(bird1 == bird2); // true}

使用 const 来确保两个实例是一模一样的。

然后类还有其他多种构造函数,下期写上。


下期:类构造函数。