玩转 Flutter 之 Dart-类基础知识

玩转 Flutter 之 Dart-类基础知识

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


单继承与 Mixin

Dart 与单继承,C++ 小伙伴注意了,实现类似多继承功能的是使用 Mixin(混入)来实现的,即单个基类(超类、父类)加 N 个 Mixin。

形式如下:

// 基类
class Person {
String name;
Person(name):name = name {}
}
// Mixin
abstract class Boy {
// 不要实现构造方法
}
// Mixin
abstract class Girl {
// 不要实现构造方法
}
// 子类实现继承与 Mixin
class 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 来确保两个实例是一模一样的。

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


下期:类构造函数。


分享到:


相關文章: