簡體   English   中英

DART:擴展類中抽象方法的實現

[英]DART: implementation of abstract method in extended class

我在 myclass.dart 文件中有兩個類:

abstract class A{
  _myAbstractMethod();
}

class B extends A{

}

此時編譯顯示:缺少 One._Method的具體實現。 這是正確的行為!

當我將每個類放在單獨的文件上時,問題就來了。 當我將 B 類聲明移動到另一個文件時,編譯不再告訴丟失的實現。

請注意,類 A 上的方法是私有的,並且“問題”僅發生在單獨文件中的每個類中。

這是預期的行為,因為類A上的方法是庫私有的。

這意味着當放入第二個庫時,類B知道A有一個名為_myAbstractMethod的方法,如果知道,它甚至不能寫名稱(在B的庫中寫_myAbstractMethod代表不同的名稱,私有到第二個庫)。

因此,從B的角度來看,它正確地實現A的(空)接口。 一切都很好。

A類不同意,但它無能為力。 為了使B類完整,編譯器添加了一個合成的_myAbstractMethod (使用A的名稱)實現,該實現在調用時拋出。

這是預期的行為。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM