在基类中定义了一个do_something方法
#基类
func do_something():
print("parent:do something")
在子类中调用它:
func a_function_in_child():
.do_something()
基类
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
基类中的 每个默认方法
执行了两遍
小结
这种形式不统一的设计稍稍有些怪异,使用时一定要注意