[英]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.