如何在飞镖或颤振中使覆盖抽象方法

时间:2020-03-12 11:13:11

标签: dart

我的背景来自Java,因此我可以像下面给出的那样在Java中实现抽象类和方法:

第1类

public class Base {

  public void method( VerificationCallbacks verificationCallbacks){

       verificationCallbacks.signInWithEmail();

    };
}

抽象类

public abstract class VerificationCallbacks {

    public abstract void signInWithEmail();

    public abstract void signUpInWithEmail();
}

因此我们可以实现这些类,例如

     Base base = new Base();
      base.method(new VerificationCallbacks() {
        @Override
        public void signInWithEmail() {

        }

        @Override
        public void signUpInWithEmail() {

        }
    });

但是现在我想用飞镖或颤振器实现这种技术

 Base base = new Base();

 base.method(new VerificationCallbacks());

但是当我编写此代码以实现重写方法时,它表明无法实例化dart抽象类,请任何人都可以帮助我实现这一目标。

1 个答案:

答案 0 :(得分:0)

class Base {
  void method({
    VoidCallback signInWithEmailCallback,
    VoidCallback signUpWithEmailCallback,
  }) {
    if (true) {
      signInWithEmailCallback();
    } else {
      signUpWithEmailCallback();
    }
  }
}

Base base = Base();
base.method(signInWithEmailCallback: () {
  //
}, signUpWithEmailCallback: () {
  //
});

您还可以像这样为回调定义自己的别名

typedef VerificationCallback = void Function();

并使用它

class Base {
  void method({
    VerificationCallback signInWithEmailCallback,
    VerificationCallback signUpWithEmailCallback,
  }) {
    // logic here
  }
}