📜  Dart的抽象类(1)

📅  最后修改于: 2023-12-03 15:00:20.580000             🧑  作者: Mango

Dart的抽象类

在Dart中,抽象类是一个不能被实例化的类,它主要用于定义接口和提供默认实现。抽象类的使用可以让我们更好地组织和设计代码,同时提高代码的可读性和可维护性。

定义抽象类

定义一个抽象类需要在类名前面加上abstract关键字,同时可以在类中定义抽象方法和抽象属性。抽象方法和抽象属性没有具体的实现,需要在子类中进行实现。

abstract class Animal {
  void sayHello();
  int get age;
}

上面的代码定义了一个抽象类Animal,它定义了一个抽象方法sayHello和一个抽象属性age。子类继承Animal类时必须实现sayHello方法和age属性。

实现抽象类

实现抽象类需要使用extends关键字继承抽象类,同时需要在子类中实现所有的抽象方法和抽象属性。

class Dog extends Animal {
  @override
  void sayHello() {
    print('汪汪汪!');
  }

  @override
  int get age => 2;
}

上面的代码定义了一个Dog类,它继承了Animal类,并实现了sayHello方法和age属性。

接口

抽象类可以用作接口,即定义一组方法和属性的规范,而不需要具体的实现。为了使用一个接口,需要使用implements关键字,同时在实现类中必须实现接口中的所有方法和属性。

abstract class Animal {
  void sayHello();
  int get age;
}

class Dog implements Animal {
  @override
  void sayHello() {
    print('汪汪汪!');
  }

  @override
  int get age => 2;
}

上面的代码定义了一个抽象类Animal作为接口,Dog类实现了Animal接口中的所有方法和属性。

总结

抽象类是Dart中非常重要的概念之一,它可以用于定义接口和提供默认实现,使我们更好地组织和设计代码。同时,抽象类也可以用于实现多态和代码复用,提高代码的可读性和可维护性。