繁体   English   中英

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

[英]Is it possible to extend a class with a default private constructor in Dart?

假设我们有a class a

class A {
  A._();
}

它的默认构造函数privateA._()

有什么办法可以extends该类吗?

问题

class B extends A {

}

这导致编译器错误

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

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

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

不,没有办法。 这是防止扩展的有效方法。

您仍然可以执行该类。

class B implements A {}

如果该类具有公共的非工厂构造函数,则仍可以通过将构造函数调用转发到此类超类的命名构造函数来对其进行扩展。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM