sni*_*tko 5 inheritance private-methods dart
每当我定义这样的私有方法时:
class ParentClass {
sayHi() { _initiateGreeting(); }
_initiateGreeting() { print("I'm a parent class"); }
}
Run Code Online (Sandbox Code Playgroud)
不可能在子类中重新定义它:
class ChildClass extends ParentClass {
_initiateGreeting() { print("I'm a child class"); } // redefining the method
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我创建了一个 aChildClass和 callsayHi()方法的实例,那么ParentClass实际调用的是 a 中的私有方法:
var child = new ChildClass();
child.sayHi(); // outputs "I'm a parent class"
Run Code Online (Sandbox Code Playgroud)
但是,如果_initiateGreeting()在任何地方都公开(即剥离了_),则child.sayHi()在输出中调用results I'm a child class。
为什么?如何重新定义私有方法以便在子类中调用它?
| 归档时间: |
|
| 查看次数: |
3942 次 |
| 最近记录: |