我的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/