请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

with Study 显示红色

显示说 The class ‘Study’ can’t be used as a mixin because it isn’t a mixin class nor a mixin class Test extends Person with Study{

正在回答 回答被采纳积分+3

1回答

CrazyCodeBoy 2024-01-14 12:58:27

Dart的不同版本对mixin的限制不同,为解决上述问题,我们可以通过mixin关键字来修饰一个mixin,去掉abstract class,以下是修改前后的代码对比:

修改前:

abstract class Study {
  //抽象方法 : 没有方法体的方法称为抽象方法,不需要abstract关键字定义
  void study();

  //抽象类中可以包含有方法体的方法
  void study2() {
    print("study2");
  }
}
class Test extends Person with Study {
  Test(String name, int age) : super(name, age);

  @override
  void study() {
    study2();
  }
}


修改后:

mixin StudyMixin {
  //抽象方法 : 没有方法体的方法称为抽象方法,不需要abstract关键字定义
  void study();

  //抽象类中可以包含有方法体的方法
  void study2() {
    print("study2");
  }
}
class Test extends Person with StudyMixin {
  Test(String name, int age) : super(name, age);

  @override
  void study() {
    study2();
  }
}


2 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信