概念
dart 抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象。在dart 语言中,没有接口。
- 抽象类通过abstract 关键字定义
- dart 中的抽象方法不能用abstract 声明,dart 中没有方法体的方法称为抽象方法
- 如果子类继承抽象类必须实现里面的抽象方法
- 如果把抽象类当作接口实现,必须实现抽象类里面定义的所有属性和方法
- 抽象类不能被实例化,只有继承他的子类可以
定义抽象类
使用关键字 abstract
abstract Person(){}
方法
abstract class Animal {
String? name;
int? height;
eat();
}
/// 继承抽象类
class Dog extends Animal{
@override
eat() {
name='李四';
height=33;
// TODO: implement eat
throw UnimplementedError();
}
}
///实现抽象类
class Cat implements Animal{
@override
int? height;
@override
String? name;
@override
eat() {
// TODO: implement eat
throw UnimplementedError();
}
}
Extends 抽象类 和implements 的区别
- 如果要复用抽象类里面的方法,并且要用抽象方法约束子类,我们就用Extends 抽象类
- 如果只是把抽象类当作标准,我们就用implements 去实现抽象类