你能调用一个在 Haxe 中被覆盖的父方法吗?
Can you call a parent method that has been overridden in Haxe?
Haxe 允许子构造函数 类 使用 super()
调用父构造函数,但在构造函数方法之外绑定使用 super()
会触发错误。如果该方法已被覆盖,子项是否可以调用父项的方法?
草草写的例子:
class Parent {
var thing:Bool;
public function someFunc(){
if(this.thing){
return "TRUE!";
} else {
return "FALSE!";
}
}
}
class Child extends Parent {
var thing2:Bool;
public override function someFunc() {
if(this.thing2){
return "TRUE!";
} else {
return someFunc(); //call to parent function?
}
}
}
super.someFunc() 在 Child 中就是你想要的。
(super()总是表示父class'构造函数,只能从子构造函数中调用)
是的,可以使用 super
关键字。
public override function someFunc() {
if (this.isWorking) {
return true;
} else {
return super.someFunc();
}
}
Haxe 允许子构造函数 类 使用 super()
调用父构造函数,但在构造函数方法之外绑定使用 super()
会触发错误。如果该方法已被覆盖,子项是否可以调用父项的方法?
草草写的例子:
class Parent {
var thing:Bool;
public function someFunc(){
if(this.thing){
return "TRUE!";
} else {
return "FALSE!";
}
}
}
class Child extends Parent {
var thing2:Bool;
public override function someFunc() {
if(this.thing2){
return "TRUE!";
} else {
return someFunc(); //call to parent function?
}
}
}
super.someFunc() 在 Child 中就是你想要的。
(super()总是表示父class'构造函数,只能从子构造函数中调用)
是的,可以使用 super
关键字。
public override function someFunc() {
if (this.isWorking) {
return true;
} else {
return super.someFunc();
}
}