美文网首页
flutter中接口、mixins以及抽象类的异同

flutter中接口、mixins以及抽象类的异同

作者: 小蜗牛吱呀之悠悠 | 来源:发表于2020-12-09 17:50 被阅读0次

以下所有内容均为个人观点,转载请注明出处<简书--小蜗牛吱呀之悠悠 >,谢谢!

flutter中的接口、mixins都可以给类增加能力,那么这两者有什么异同呢?

首先,先简单了解一下接口、mixins以及抽象类的能力
接口:通过implements关键字,让实现接口的类必须重写接口中的所有方法。
mixins: 通过mixins关键字,让实现mixins的类能够重写mixins中的方法。
抽象类: 通过abstract关键字,让类成为抽象类,可以让本类没有方法体,也可以有方法体。

一、从功能来看:

1、接口是必须重写所有方法,否则编译不通过,如下

class Leader {
  showLeader(){
    print('这是一位领导');
  }
}
class PersonalForSomebody implements Leader {
  @override
  showLeader() {
    // TODO: implement showLeader
    throw UnimplementedError();
  }
}

2、mixins可以只重写一部分的方法

class StudyClass {
  void studyMethod(){
  }
//可以不被重写
  void testMethod(){
  }
}
class Test extends Person with StudyClass {
  Test(String name, int age) : super(name, age);
  @override
  void studyMethod() {
    // TODO: implement studyMethod
    super.studyMethod();
  }
}

3、无论是接口还是mixins,只要是提供接口或mixins的类是抽象类,所有方法必须被实现

二、super关键字

1、从上述代码可以看出,当方法被重写时,接口无法使用super关键字,mixins可以使用super调用父类的方法
2、由于接口必须重写所有方法,因此实例化以后,可以使用所有接口的方法;但mixins在实例化后,只能使用已经重写的方法

综上,接口、mixins有以下异同:
  • 接口的所有方法需要被重写,mixins的方法可以只重写一部分(抽象类的需要实现全部方法),没重写的那部分实例化后无法调用
  • 接口的方法被重写时,不能使用super来访问被重写的方法,而mixins可以
  • 接口跟iOS中用require修饰的协议方法比较像,mixins则和category比较像

相关文章

  • flutter中接口、mixins以及抽象类的异同

    以下所有内容均为个人观点,转载请注明出处<简书--小蜗牛吱呀之悠悠 >,谢谢! flutter中的接口、mixin...

  • Flutter Dart语法(1):extends 、 impl

    在Flutter中,有如下三种关系: 继承(关键字 extends)混入 mixins (关键字 with)接口实...

  • dart语言继承,混入,接口实现

    在Flutter中,有如下三种关系: 继承(关键字 extends)混入 mixins (关键字 with)接口实...

  • 【Flutter】Dart中的抽象类和接口

    ?【Flutter】学习养成记,【程序员必备小知识】 ? 今日小知识——【Flutter】Dart中的抽象类和接口...

  • 问题汇总

    8.291.抽象类和接口的异同答:相同点:都不能创建对象,都可以有抽象方法不同点:抽象类中也可以有普通方法,接口中...

  • Java编程——接口和抽象类

    在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。两者有着许多大异同。 一、抽象类 在了解抽象类之前...

  • Dart语法面向对象之2

    面向对象扩展 概要 继承,继承中的构造方法抽象类接口Mixins,操作符的覆写 1.继承 使用关键字 extend...

  • 梳理一

    1、抽象类和接口的异同点? 相同点 都是不断向上抽取而来的。 不同点 抽象类需要被继承,而且只能单继承。接口需要被...

  • 27号c#总结

    27号 接口,接口的声明,成员,实现与继承,接口与抽象类的异同。接口是引用类型,是一系列需要实现的功能的定义。接口...

  • Flutter/Dart - Dart中一个类实现多个接口 以及

    Dart中implements实现多个接口 Dart中的mixins 使用 mixins的中文意思就是混入,就是在...

网友评论

      本文标题:flutter中接口、mixins以及抽象类的异同

      本文链接:https://www.haomeiwen.com/subject/wkohgktx.html