打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Flutter 开发的异常 can‘t be used as a mixin because it extends

前言 - 基础关键字

  • class:声明一个类,提供具体的成员变量和方法实现。

  • abstract class:声明一个抽象类,抽象类将无法被实例化。抽象类常用于声明接口方法、有时也会有具体的方法实现。

  • mixin:声明一个Mixin类,与抽象类一样无法被实例化,是一种在多重继承中复用某个类中代码的方法模式,可以声明接口方法或有具体的方法实现。

  • extends:继承,和其它语言的继承没什么区别。

  • with:使用Mixin模式混入一个或者多个Mixin类。

  • implements:实现一个或多个接口并实现每个接口定义的API。

  • on:限制Mixin的使用范围。

1 错误信息

Error: The class 'B’ can’t be used as a mixin because it extends a class other than 'Object’.

class C extends A with B{

2 测试核心代码

测试使用工具 dartPad

https://dartpad.dartlang.org/flutte

3 Dart with 关键字

关键字with表示使用了"Mixin"

mixin指的是将另一个或多个类的功能添加到您自己的类中,而不从这些类继承的能力.这些类的方法现在可以在类上调用,这些类中的代码将被执行.

Dart没有多重继承,但mixin的使用允许您在其他类中折叠以实现代码重用,同时避免多重继承可能导致的问题.

如下定义两个类A、B,分别有自己的方法,A与B分别是抽象的,不可直接创建实例:

再定义类C,要求C具备A与B的能力,可以定义如下:

如果要使 B 再具备 A的能力:

如果B再继承A,那么上述定义的类C就会出现异常

Error: The class 'B’ can’t be used as a mixin because it extends a class other than 'Object’.
class C extends A with B{

正确的做法

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ES6新特性5:类(Class)和继承(Extends)
如何解读 Java 的继承和多态特性?
Java 继承
JAVA中extends 与implements
java基础之继承(一)
《Java面向对象程序设计》07 继承写字字帖
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服