文档详情

安全delphi编程节中面向对象二.pdf

发布:2024-08-25约2.55千字共18页下载文档
文本预览下载声明

第5节Delphi中的面向对象

◼3.4继承

◼3.5多态性

◼3.6属性与方法

3.4继承

◼一、继承的概念及意义

◼二、派生类的定义及使用

◼三、派生类的构造函数和析构函数

、继承的概念及意义

◼继承的实质就是在既有类的基础上构造新

的类,即新类从一个或多个已有的类中继

承数据和方法,同时增加或重新定义数据

和方法,由此构造出一个新的类型,称为

派生类(或子类),那些已有的类则称为

基类(或父类)。

◼继承的主要目的是实现代码的重用。

、派生类的定义及使用

派生类的定义格式为:

type

派生类=class(基类)

{派生类新增或改写部分}

end;

三、派生类的构造函数和析构函数

在ObjectPascal中,在派生类的构造函数的

开始部分,使用inherited保留字来调用基

类的构造函数,首先初始化基类的成员,然

后构造派生类的特有成员。在派生类的析

构函数的结尾部分,使用inherited保留字

来调用基类的析构函数,最后释放基类的成

员部分。

3.5多态性

◼一、多态性的概念

◼二、重载

◼三、虚方法

◼四、抽象方法与抽象类

◼五、类及类型信息运算符

、多态性的概念

在面向对象程序设计中,多态性是指相同的

操作,在不同类的对象中具体的实现过程

不同。ObjectPascal支持两种多态性:编

译时的多态性和运行时的多态性。编译时

的多态性通过重载实现,运行时的多态性

通过虚方法来实现。

、重载

在面向对象程序设计中,重载的含义是相

同名字的函数或过程,在不同的场合可

以表现出不同的行为,也就是说,可以同

时定义多个具有相同名字的函数或过程,

而它们的操作对象具有不同的类型。重载

函数或过程用保留字overload来说明。

、虚方法

方法调用中,在运行时才确定对象方法的调

用地址,这种调用方法叫动态联编。动态联

编通过虚方法来实现,虚方法使用指令字

virtual说明。

重载参数个数和类型完全相同的方法时使用

保留字override,而不使用保留字

overload。

动态联编除可以通过虚方法实现外,

还可以通过动态方法实现,动态方

法使用指令字dynamic。虚方法和

动态方法在功能上是等价的,它们

的不同在于:虚方法的调用速度比

较快,而动态方法的代码数量比较

少。

四、抽象方法与抽象类

◼在定义虚方法或动态方法时,使用指令字

说明,则该方法成为抽象方法,包

含抽象方法的类称为抽象类。

◼抽象方法不可以定义函数体,且必须是虚

方法或动态方法。

五、类及类型信息运算符

1.类

类(classreference)是一种数据类型,

是类的类型。其定义格式如下:

TypeRT=classofT;

◼其中,T为已经定义的类,RT定义为T类的

类型。

2.类型信息运算符

类型信息运算符是在程序运行期间,用来进行

类型信息检测和类型转换的运算符。

◼is运算符

is运算符的表达式格式为:

对象名is类名

表达式的作用是判别某对象是否是某个类的一

个实例。如果该对象是某类的一个实例,则

运算结果为True,否则结果为False。

◼as运算符

as运算符的表达式格式为:

对象名as类名

表达式的作用是返回一个指定类的对象

。该对象原所属必须与类兼

容,或者为空(nil)。通常可以先用

is运算先检测其与类的兼容性

显示全部
相似文档