flutter - 抽象类是否可以具有其他抽象类的返回类型的方法?

标签 flutter dart

我的flutter / dart应用程序将Provider程序包与各种身份验证服务一起使用,例如Google,Apple,Firebase等。我希望我的抽象类为各种实现提供更多指导,如下所示:

abstract class AuthService{
    Future<User> signIn();
}

abstract class User{}

实际上,我必须将其实现为:
abstract class AuthService{
    Future<dynamic> signIn();
}

因为我的AuthService的特定实现不会返回用户,而是FirebaseUser或AppleUser。有没有一种方法可以将返回类型指定为抽象User类的某种实现?

最佳答案

这实际上与返回任何抽象的基类没有什么不同。构造一个具体类的实例并返回它。

abstract class AuthService{
    Future<User> signIn();
}

abstract class User{}

class FirebaseUser extends User {}

class FirebaseAuthService extends AuthService {
  @override
  Future<User> signIn() {
    return Future.value(FirebaseUser());
  }
}

关于flutter - 抽象类是否可以具有其他抽象类的返回类型的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61759843/

相关文章:

datetime - 如何在 Dart 中将日期/时间字符串转换为 DateTime 对象?

flutter - 为什么在StreamBuilder的connectionState.done之后得到另一个connectionState类型?

flutter - 如何在flutter中添加圆形图表?

asynchronous - 从 Dart 中的构造函数调用异步方法

inheritance - 在dart中找到所有子类

flutter - 如何访问 Dart 中的映射字段

Flutter 应用程序在加载应用程序之前显示黑屏

ios - 将 iOS 升级到 13.3.1 后,Flutter 应用程序无法在 iPhone 中运行

flutter - 如果 parent 更新,如何避免重建 child

dart - 从回调内部取消 StreamSubscription