GDScript:关于派生类调用基类方法的一个注意事项
对于普通方法,在派生类中用"."+"方法名"的方式调用基类的方法,例如:
在基类中定义了一个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 ParentClassfunc _ready():pass # Replace with function body.
func _enter_tree():pass
func _exit_tree():pass
运行结果
_enter_tree in parent
_ready in parent
这意味着基类的默认方法
方法无论如何都要执行,且无法覆盖的
下面试一下如果在派生类的 默认方法
中显式调用一下基类的默认方法
:
extends ParentClassfunc _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
基类中的 每个默认方法
执行了两遍
小结
这种形式不统一的设计稍稍有些怪异,使用时一定要注意
GDScript:关于派生类调用基类方法的一个注意事项相关推荐
- C++ 类继承:构造函数与析构函数调用顺序,派生类和基类之间的特殊关系,公有继承及其他
文章目录 一.派生类构造函数与基类构造函数 二.创建与销毁派生类对象时,构造函数和析构函数的调用 三.派生类和基类之间的特殊关系 四.公有继承 (一).何为公有继承 (二).多态公有继承 (三).虚函 ...
- 派生类到基类的转换 和基类到派生类的转换
一. 基类与派生类的转换 3种继承方式(公用.保护.私有继承)中,公用派生类才是基类真正的子类型,它完整地继承了基类的功能. 不同类型数据之间在一定条件下可以进行类型的转换.基类与派生 ...
- 派生类对基类成员的访问控制之公有继承
公有继承 前面说过,派生类从基类继承时有三个步骤, 第一个步骤是吸收基类成员,吸收了基类中除构造函数和析构函数之外的所有数据成员和函数成员, 第二个步骤就是修改基类成员,包括修改对基类成员的访问属性和 ...
- 派生类从基类继承的过程
派生类从基类继承的过程 派生类从基类继承的过程可以分为三个步骤:吸收基类成员.修改基类成员和添加新成员. 吸收基类成员就是代码复用的过程,修改基类成员和添加新成员实现的是对原有代码的扩展,而代码的复用 ...
- C++学习记录:派生类向基类转换及其可访问性
知乎有很多博主学不会了一言不合就抄书,我觉得这对学习计算机科学是一样的. 这里说一个自己或许也有许多人都会也不太注意的点,派生类向基类转换及其可访问性,抄自<C++ Primer>. 派生 ...
- 从零开始学C++之继承(二):继承与构造函数、派生类到基类的转换
一.不能自动继承的成员函数 构造函数(包括拷贝构造函数) 析构函数 =运算符 二.继承与构造函数 基类的构造函数不被继承,派生类中需要声明自己的构造函数. 声明构造函数时,只需要对本类中新增成员进行初 ...
- 6-4 派生类使用基类的成员函数
6-4 派生类使用基类的成员函数 分数 5 全屏浏览题目 切换布局 作者 李廷元 单位 中国民用航空飞行学院 按要求完成下面的程序: 1.定义一个Animal类,成员包括: (1)整数类型的私有数据成 ...
- 【C++ Priemr | 15】派生类向基类转换的可访问性
1. 只有当D公有继承B时,用户代码才能使用派生类向基类的转换:如果D私有继承B的方式是受保护的或者私有的,则用户代码不能使用该转换. class A {}: class B : public A { ...
- C++派生类与基类构造函数调用次序
本文用来测试C++基类和派生类构造函数,析构函数,和拷贝构造函数的调用次序. 运行环境:SUSE Linux Enterprise Server 11 SP2 (x86_64) #include & ...
最新文章
- 【mysql的编程专题⑤】自定义函数
- Java-NIO(九):管道 (Pipe)
- 第八篇!95后天才少年曹原再发Nature!
- texmaker中图片过大怎么办_【社工面试】社区居民楼起火,你怎么办?
- 在reader中勾选pdf复选框_Adobe Acrobat和Reader PDF文件处理缓冲区溢出漏洞
- pip工具使用总结以及常用库PIL、freetype的安装
- STM32 BOOT 引脚配置
- 理想汽车4月交付5539辆 累计交付51715辆
- oracle plsql 无法连接 报 ORA-12560: TNS:protocol adapter error
- php分割文本读入数组,PHP fgets按行读取字符串和explode分割字符串为数组
- Java21天打卡Day11-字符串3
- 网站打开速度慢如何解决
- 《在远方》首播获佳绩 刘烨改行送快递马伊琍长发少女感MAX
- MySQL分库分表后聚合查询_MySQL订单分库分表多维度查询
- 2021执念斩长河年度总结
- GPS导航电文——第三子帧数据解析
- 数值分析18 - 通过直接方法得到函数积分近似 数值方法(左、右、中、梯形矩形积分公式、Simpson积分公式)
- 嵌入式设备系统有无操作系统的区别
- 类在c++中的初步运用
- mfrc522 c语言程序,用mxgxw/MFRC522python库和MFRC522读卡器在raspi2上编写ntag213(Mifare ultralightc)...
热门文章
- MindAR初体验——一款js实现的AR库
- 玩转前端 Video 播放器
- Oracle数据库占用磁盘,导致磁盘活动时间为100%的解决方法
- 核心单词Word List 46
- 英语词根词缀记忆法(全集)_语言学习 | 英语词根词缀学习参考
- 华为数通知识点OSPF
- 信息系统项目管理师必背核心考点(二十一)可交付成果
- 利用计算机模拟人脑进行演绎推理,2014年4月全国自学考试计算机应用技术试题...
- 仿微信二维码极速扫描(MLKit及CameraX初体验),面试宝典
- 转:7招,教你在工作中高效做笔记