美文网首页Flutter
Dart-04 类、对象、mixins

Dart-04 类、对象、mixins

作者: JuliusL | 来源:发表于2022-07-25 00:14 被阅读0次

    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{
    }
    

    相关文章

      网友评论

        本文标题:Dart-04 类、对象、mixins

        本文链接:https://www.haomeiwen.com/subject/ucdbirtx.html