Flutter

Dart-04 类、对象、mixins

2022-07-25  本文已影响0人  JuliusL

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基本一致

抽象类和抽象方法

  1. 抽象类通过abstract关键字来定义
  2. Dart中的抽象方法不能用abstract声明,Dart中没有方法体的方法我们称为抽象方法。
  3. 如果子类继承抽象类必须得实现里面的抽象方法
  4. 如果把抽象类当作接口实现的话必须实现里面的抽象方法
  5. 抽象类不能被实例化,只有继承它的子类可以
extends抽象类和implements的区别:
  1. 如果要复用抽象类里面的方法,并且要用抽象方法约束自类的话我们就用extends继承抽象类
  2. 如果只是把抽象类当作标准的话我们就用implements实现抽象类
abstract class Animal{
  eat();
}
class Dog extends Animal{
  @override
  eat(){
    print("小狗")
  }
}

mixins

mixins的中文意思是混入,就是在类中混入其他功能。
在dart中可以使用mixins实现类似多继承的功能。
因为mixins使用的条件,随着Dart版本一直在变,这里讲的是Dart2.x中使用mixins的条件:

  1. 作为mixins的类只能继承自Object,不能继承其他类
  2. 作为mixins的类不能有构造函数
  3. 一个类可以mixins多个mixins类
  4. mixins绝不是继承,也不是接口,而是一种全新的特性
class C with A,B{
}
上一篇 下一篇

猜你喜欢

热点阅读