3
每當我定義的私有方法是這樣的:如何創建可在Dart的子類中重新定義的私有方法?
class ParentClass {
sayHi() { _initiateGreeting(); }
_initiateGreeting() { print("I'm a parent class"); }
}
這是不可能重新定義它的子類:如果我創建一個ChildClass
的一個實例,並調用sayHi()
方法
class ChildClass {
_initiateGreeting() { print("I'm a child class"); } // redefining the method
}
現在,那麼它是從ParentClass
私有方法實際上被調用:
var child = new ChildClass();
child.sayHi(); // outputs "I'm a parent class"
如果howev呃,_initiateGreeting()
無處不在(也就是剝離_
)然後調用child.sayHi()
結果輸出I'm a child class
。
爲什麼?我如何重新定義一個私有方法,以便在子類中調用它?
這很有趣。但是如果'ParentClass'屬於一個庫,那麼在文件頂部有''部分'語句來保存'ParentClass',而'ChildClass'不是該庫的一部分(這是諷刺的, 我的情況)? – snitko
是否期望'ChildClass'不會在你的代碼片段中擴展'ParentClass'? ''的一部分不應該對隱私產生影響。 –
我做了一些挖掘,看起來''聲明的一部分實際上影響着我是否可以重新定義私有方法:https://groups.google.com/a/dartlang.org/forum/#!msg/misc/ XZ0pqeqCeVs/j3QdGO_ZZmUJ – snitko