Dart基础/Flutter-抽象类,接口,多继承

abstract class Animal {//dart中没有interface修饰词,接口和抽象类定义方式一样

  //用abstract修饰的类 为抽象类  抽象类里面可以有抽象方法  非抽象类里面不可以有抽象方法

  String name;//抽象类中的属性,必须实现

  void getColor();//抽象方法:没有具体实现的方法

  void printInfo () {

    print('这是一个非抽象的方法');//抽象类里可以有非抽象方法

  }

}

class Donwu {//一个要想被with 多继承  那么该类不能有构造函数

  String name;

  // void getLegsum();//非抽象类不可以有抽象的方法

  void printInfo () {

    print('这是一个非抽象的方法');//抽象类里可以有非抽象方法

  }

  void eat (String value) {

    print(value+"吃草");

  }

}



class Bull implements Animal {

  @override

  String name;

  @override

  void getColor() {

    // TODO: implement getColor

  }

  @override

  void printInfo() {

    // TODO: implement printInfo

  }

}

class Cow extends Animal with Donwu{//with表示实现多继承,实例化cow的时候,可以用cow对象,调用Animal

// 中的方法和Donwu中的方法

  String name;

  @override

  void getColor() {

    // TODO: implement getColor

  }

  @override

  void printInfo() {

    // TODO: implement printInfo

  }



}

main() {

  // Animal animal = new Animal();//抽象类不能被实例化

  Cow cow = new Cow();//如果想实现非抽象类的方法,可以先写一个子类,子类继承或者实现抽象类,子类可以实例化

  cow.getColor();

  cow.eat('牛');

}

你可能感兴趣的:(Dart基础/Flutter-抽象类,接口,多继承)