首页 文章

是否可以使用Dart中的默认私有构造函数扩展类?

提问于
浏览
1

假设我们有 class a

class A {
  A._();
}

它的默认构造函数是private: A._() .

有没有办法 extends 那个班?

问题

class B extends A {

}

这导致编译器 error

The superclass 'A' doesn't have a zero argument constructor.

试图为 B 自己构建任何构造函数( B() )会导致另一个错误:

The superclass 'A' doesn't have an unnamed constructor.

1 回答

  • 2

    不,没有办法 . 这是防止延伸的有效方法 .

    你仍然可以做的是实现这个课程 .

    class B implements A {}
    

    如果类还有一个公共的非工厂构造函数,你仍然可以通过将构造函数调用转发给超类的这样一个命名构造函数来扩展它 .

    class B extends A {
      B() : super.other();
    }
    

相关问题