- 对于普通方法,在派生类中用"."+"方法名"的方式调用基类的方法,例如:
在基类中定义了一个do_something方法
#基类
func do_something():
print("parent:do something")
在子类中调用它:
func a_function_in_child():
.do_something()
- 对于
_init
以及_ready
还有_enter_tree
这样的默认方法
是不需要像上面那样显示调用的,例如:
基类
extends Node
class_name ParentClass
func _ready():
print("_ready in parent")
func _enter_tree():
print("_enter_tree in parent")
func _exit_tree():
print("_exit_tree in parent")
派生类
extends ParentClass
func _ready():
pass # Replace with function body.
func _enter_tree():
pass
func _exit_tree():
pass
运行结果
_enter_tree in parent
_ready in parent
这意味着基类的默认方法
方法无论如何都要执行,且无法覆盖的
下面试一下如果在派生类的 默认方法
中显式调用一下基类的默认方法
:
extends ParentClass
func _ready():
._ready()
func _enter_tree():
._enter_tree()
func _exit_tree():
._exit_tree()
输出结果
_enter_tree in parent
_enter_tree in parent
_ready in parent
_ready in parent
基类中的 每个默认方法
执行了两遍
小结 这种形式不统一的设计稍稍有些怪异,使用时一定要注意