Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Class 如何在Dart中将父类强制转换为子类_Class_Flutter_Dart_Casting_Extends - Fatal编程技术网

Class 如何在Dart中将父类强制转换为子类

Class 如何在Dart中将父类强制转换为子类,class,flutter,dart,casting,extends,Class,Flutter,Dart,Casting,Extends,我有两个A班和B班 class A{ String a; A(); } class B extends A{ String b; B(); } 如何获得一个像: B getA(){ return A(); } 或 我的代码: Future<B> getB() async { return apiMethod("url", headers: {'requirestoken': true}, httpEnum: HttpEnum.G

我有两个A班和B班

class A{
  String a;
  A();
}
class B extends A{
  String b;
  B();
}
如何获得一个像:

B getA(){
  return A();
}

我的代码:

  Future<B> getB() async {
    return apiMethod("url", headers: {'requirestoken': true}, httpEnum: HttpEnum.GET).then((response) {
      return B.fromJson(response.data);
    }).catchError((error, stacktrace) => A.catchErrorMethod(error, stacktrace));
  }
你不能这样做。 B是A,但A不是B

但是,您可以在任何地方简单地使用B,就好像它是A一样,您不能这样做。 B是A,但A不是B

然而,你可以在任何地方简单地使用B,就好像它是A一样,我在“铸造”方面也有同样的问题。Dart解决方案是这样使用的:

B b = A() as B;
我对“铸造”也有同样的问题。Dart解决方案是这样使用的:

B b = A() as B;

谢谢,我需要一种方法来实现这一点?然后你能为你想做的事情添加一个更具体的版本吗(概念和一些实际的代码)。谢谢,我需要一种方法来实现这一点吗?然后你能为你想做的事情添加一个更具体的版本吗(概念和一些实际的代码)你能再解释一下a课背后的想法吗?你能再解释一下a课背后的想法吗
B b = A() as B;