Flutter/Dart 类名关键字extends,mixin,implements,abstract总结

1.继承 extends

  • dart里的继承是单继承,即只能又一个父类
  • 子类会继承父类所有非私有属性和方法
  • 子类重写父类的方法用@override,子类调用父类方法用super

2.混合 mixinwith

  • mixin不能有构造函数
  • 一个类可以mixin多个mixin
  • mixin不是继承

3.接口实现implements

  • 每个类都是一个隐式接口,包含所有的属性和方法
  • 当一个类被implements时, 子类需要重写该类的所有属性和方法,并在前面加@override

4.抽象类abstract

  • 不能被实例化,只能被子类继承
  • 可以在抽象类中定义抽象方法与普通方法,抽象方法不能有实现,且子类必须重写该方法,而普通方法不强制子类重写

抽象类与接口实现看起来有很多相似的地方, 但也有不同之处

abstract class interface class
不能实例化 可以实例化
只有抽象方法需要重写 所有属性与方法都要重写
只能继承一个抽象类 能implement多个类

你可能感兴趣的:(Flutter/Dart 类名关键字extends,mixin,implements,abstract总结)