簡體   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