10.Dart-抽象类

2021-09-14  本文已影响0人  你的胡霸霸

/**

* Dart中的抽象类

*    Dart抽象类主要用于定义标准, 子类可以继承抽象类, 也可以实现抽象类接口

*  1.抽象类通过abstract关键字来定义

*  2.Dart中的抽象类方法不能用abstract声明, Dart中没有方法体的方法我们成为抽象方法

*  3.如果子类继承抽象类必须得实现里面的抽象方法

*  4.如果吧抽象类当做接口实现,必须试下抽象类里面所有属性和方法

*  5.抽象类不能被实例化, 只有继承抽象类的子类可以

*

* extends抽象类和 implements区别:

*  1.如果要复用抽象类里面的方法,并且要用抽象方法约束子类就用extends继承抽象类

*  2.如果只是把抽象类当做标准就用implemets实现抽象类

*

*/

main(List<String> args) {

  var dog = new Dog();

  dog.name = "小狗";

  dog.eat();

  dog.run();

  dog.say();

  // 抽象类其实就是多态的一种形式

  // 这里将dog转成Aniaml, 那么他就不能用dog类自己的say方法了

  Animal dog1 = new Dog();

  dog1.run();

  // dog1.say()//这世就没有这个方法可以调用了

}

// 定义一个抽象类, 抽象类未实现的方法叫抽象方法,子类必须实现, 抽象类里面实现了的方法, 子类可以直接继承使用

abstract class Animal {

  String name = "动物";

  eat();

  run() {

    print("${this.name}奔跑吧");

  }

}

class Dog extends Animal {

  @override

  eat() {

    print("小狗吃骨头!");

  }

  // 子类自己的方法

  say() {

    print("汪汪汪!");

  }

}

class Cat implements Animal {

  @override

  String name;

  @override

  eat() {

    // TODO: implement eat

    throw UnimplementedError();

  }

  @override

  run() {

    // TODO: implement run

    throw UnimplementedError();

  }

}

上一篇 下一篇

猜你喜欢

热点阅读