- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第5节Delphi中的面向对象二
3.4继承
3.5多态性
3.6属性与方法
3.4继承
一、继承的概念及意义
二、派生类的定义及使用
三、派生类的构造函数和析构函数
一、继承的概念及意义
继承的实质就是在既有类的基础上构造新的类,即新类从一个或多个已有的类中继承数据和方法,同时增加或重新定义数据和方法,由此构造出一个新的类型,称为派生类(或子类),那些已有的类则称为基类(或父类)。
继承的主要目的是实现代码的重用。
二、派生类的定义及使用
派生类的定义格式为:
type
派生类=class(基类)
{派生类新增或改写部分}
end;
三、派生类的构造函数和析构函数
在ObjectPascal中,在派生类的构造函数的开始部分,使用inherited保留字来调用基类的构造函数,首先初始化基类的成员,然后构造派生类的特有成员。在派生类的析构函数的结尾部分,使用inherited保留字来调用基类的析构函数,最后释放基类的成员部分。
3.5多态性
一、多态性的概念
二、重载
三、虚方法
四、抽象方法与抽象类
五、类引用及类型信息运算符
一、多态性的概念
在面向对象程序设计中,多态性是指相同的操作,在不同类的对象中具体的实现过程不同。ObjectPascal支持两种多态性:编译时的多态性和运行时的多态性。编译时的多态性通过重载实现,运行时的多态性通过虚方法来实现。
二、重载
在面向对象程序设计中,重载的含义是相同名字的函数或过程,在不同的场合可以表现出不同的行为,也就是说,可以同时定义多个具有相同名字的函数或过程,而它们的操作对象具有不同的类型。重载函数或过程用保留字overload来说明。
三、虚方法
方法调用中,在运行时才确定对象方法的调用地址,这种调用方法叫动态联编。动态联编通过虚方法来实现,虚方法使用指令字virtual说明。
重载参数个数和类型完全相同的方法时使用保留字override,而不使用保留字overload。
动态联编除可以通过虚方法实现外,还可以通过动态方法实现,动态方法使用指令字dynamic。虚方法和动态方法在功能上是等价的,它们的不同在于:虚方法的调用速度比较快,而动态方法的代码数量比较少。
四、抽象方法与抽象类
在定义虚方法或动态方法时,使用指令字abstract说明,则该方法成为抽象方法,包含抽象方法的类称为抽象类。
抽象方法不可以定义函数体,且必须是虚方法或动态方法。
五、类引用及类型信息运算符
1.类引用
类引用(classreference)是一种数据类型,是类的类型引用。其定义格式如下:
TypeRT=classofT;
其中,T为已经定义的类,RT定义为T类的引用类型。
2.类型信息运算符
类型信息运算符是在程序运行期间,用来进行类型信息检测和类型转换的运算符。
is运算符
is运算符的表达式格式为:
对象名is类名
表达式的作用是判别某对象是否是某个类的一个实例。如果该对象是某类的一个实例,则运算结果为True,否则结果为False。
as运算符
as运算符的表达式格式为:
对象名as类名
表达式的作用是返回一个指定类的对象引用。该对象原所属必须与引用类兼容,或者为空(nil)。通常可以先用is运算先检测其与引用类的兼容性。
3.6属性与方法
一、属性
二、方法
一、属性
在Delphi中,组件的属性可以看成是对类中数据进行访问和修改的特殊的辅助域。
当然,在Delphi中,我们并不需要了解属性是如何实现的,我们只要通过ObjectInspect窗口就可以设置组件的属性值了。
二、方法
方法在ObjectPascal中的形式就是类的过程成员或函数成员。方法描述对象的行为特征。
在所有对象的方法中都有一个名为self的隐含变量,self是一个指向调用方法的对象的指针。当某个对象调用方法时,编译器将self指针指向该对象。
在定义类的成员函数或过程时,如果在procedure或function前加上class保留字,则该方法称为类方法。类方法用类调用,而不是用对象调用,它们对类进行操作,而不是对具体的对象操作。
您可能关注的文档
- 教程教育asp net part 6 http协议.pdf
- 通过空间时间了解人类与环境复习放松副教授niamh moore-lconsolidating the learning巩固学习.pdf
- 白酒制造行业企业安全生产风险分级管控体系实施指南 .pdf
- 甘肃省2024届高三下学期4月月考数学试卷(含答案与解析)_5330.pdf
- 真题重组卷05(深圳专用)-冲刺2024年中考数学真题重组卷(原卷版).pdf
- 研究开发组织管理制度精细 .pdf
- 瑞安市砂石项目可行性研究报告 .pdf
- 秋季开学典礼教师代表讲话稿范文15篇 .pdf
- 知识产权代理知识产权服务方案怎么写范文 .pdf
- 生物电诊断仪器项目实施方案 .pdf
文档评论(0)