Dart9(九)抽象类、多态、 接口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dart9(九)抽象类、多态、 接口相关的知识,希望对你有一定的参考价值。

参考技术A

1、抽象类通过abstract 关键字来定义
2、dart中抽象方法不能使用abstrac声明,dart中没有方法体的方法称为抽象方法
3、如果子类继承抽象类须得实现抽象类里面的抽象方法
4、如果抽象类当做接口实现的话必须得实现抽象类里面定义的所有属性和方法
5、抽象类不能被实例化,只有继承他的子类才可以

注:extends 和 implements的区别:
1、如果复用抽象类里面的方法,必须要用抽象方法约束子类的话 就用extend继承抽象类isEmpty
2、如果只是把抽象类当做标准的话,我们就用implements实现抽象类

案例:定义一个Animal 类要求它的子类全部包含eat方法

父类定义一个方法不去实现,让继承他的子类去实现,每个子类有不同的表现

首先dart的接口没有interface关键字定义接口,而是普通类或抽象类都可以作为接口被实现,
同样使用implements关键字进行实现。
如果实现的类是普通类,会将普通类和抽象中的属性和方法全部复写一遍
而因为抽象类可以定义抽象方法,普通类不可以,建议使用抽象类定义接口

案例:定义一个Db库 支持mysql mssql mongodb,mysql mssql mongodb三个类都有同样的方法

补充:一个类实现多个接口的方法
class C implements A,B // 一个类实现多个接口,那么就必须这个类实现所有接口的方法与属性

1、可以利用mixins实现多继承的功能
2、使用mixins的条件
3、作为mixins的类只能继承object,不能继承其他类(下面a、b不能继承其他类)
4、作为mixins的类不能有构造函数(下面的a、b里面不能有构造函数)
5、一个类可以mixins多个mixins类
6、mixins绝不是继承,也不是接口,而是一种全新的特性

以上是关于Dart9(九)抽象类、多态、 接口的主要内容,如果未能解决你的问题,请参考以下文章

抽象类 接口 多态

多态:抽象类/接口

python 接口类抽象类多态

多态:抽象类接口

抽象类和抽象方法接口和多态

Flutter/Dart - Dart中的抽象类 多态 和接口