Dart所有的东西都是对象,所有的对象都继承自Object类。
Dart是一门使用类和单继承的面向对象语言,所有的对象都是类的实例,并且所有的类都是Object的子类。
Dart和其他面向对象语音不一样,Dart中没有public、private、protected这些访问修饰符
但是我们可以使用_把一个属性或者方法定义成私有。
class Rect{
num height;
num width;
Rect(this.ehight,this.width);
get area{ //计算属性
return this.heigh*this.width;
}
}
Dart中我们可以在构造函数体运行之前初始化势力变量
class Rect{
int height;
int width;
Rect():height=2,width=10{}
}
Dart中的静态成员:
1、使用static关键字来实现类级别的变量和函数
2、静态方法不能访问非静态成员,非静态方法可以访问静态成员
声明和使用和java基本一致
抽象类和抽象方法
- 抽象类通过abstract关键字来定义
- Dart中的抽象方法不能用abstract声明,Dart中没有方法体的方法我们称为抽象方法。
- 如果子类继承抽象类必须得实现里面的抽象方法
- 如果把抽象类当作接口实现的话必须实现里面的抽象方法
- 抽象类不能被实例化,只有继承它的子类可以
extends抽象类和implements的区别:
- 如果要复用抽象类里面的方法,并且要用抽象方法约束自类的话我们就用extends继承抽象类
- 如果只是把抽象类当作标准的话我们就用implements实现抽象类
abstract class Animal{
eat();
}
class Dog extends Animal{
@override
eat(){
print("小狗")
}
}
mixins
mixins的中文意思是混入,就是在类中混入其他功能。
在dart中可以使用mixins实现类似多继承的功能。
因为mixins使用的条件,随着Dart版本一直在变,这里讲的是Dart2.x中使用mixins的条件:
- 作为mixins的类只能继承自Object,不能继承其他类
- 作为mixins的类不能有构造函数
- 一个类可以mixins多个mixins类
- mixins绝不是继承,也不是接口,而是一种全新的特性
class C with A,B{
}
网友评论