• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Dart语言学习(十三)DartMixins实现多继承

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Mixins

Mixins(混入功能)相当于多继承,也就是说可以继承多个类,使用with关键字来实现Mixins的功能。

那么多个类中有相同的方法时候,会被覆盖吗?覆盖的先后是什么?

class A{
  void a(){
    print("A.a()...");
  }
}

class B{

  void a(){
    print("B.a()...");
  }

  void b(){
    print("B.b()...");
  }
}

现在新建一个类D,使得D继承A和B

// 类D 继承A和B 
class D  extends A with B{

}

执行:

void main() {
  var d = new D();
  d.a();
}

输出:

B.a()...

 

如果我们改变A 和B 顺序,如下

// 类D 继承A和B,B在前A在后
class D  extends B with A{

}

再次执行

void main() {
  var d = new D();
  d.a();
}

输出:

A.a()...

 

说明了:后面的类中的方法将前面的类中相同的方法覆盖

我们再验证三个类的情况:

新建类 C

class C{

  void a(){
    print("C.a()...");
  }

  void b(){
    print("C.b()...");
  }

  void c(){
    print("C.c()...");
  }
}

 

修改类D 

// 类D 继承A、B、C,A,C在前 ,B在最后
class D  extends A with C,B{

}

再次执行

void main() {
  var d = new D();
  d.a();
}

输出:

B.a()...

再次说明:后面的类中的方法将前面的类中相同的方法覆盖。

综上,Dart中使用Mixins,可以达到多继承的效果,后面的类中的方法将前面的类中相同的方法覆盖

 

 

Dart学习系列文章:https://www.cnblogs.com/jukaiit/category/1636484.html

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
dart系列之:dart类中的构造函数发布时间:2022-07-13
下一篇:
Dart编译技术在服务端的探索和应用发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap