Delphi的抽象方法与抽象类

//抽象方法类似与接口; 在没有接口的年代 Delphi 是用抽象方法来模拟接口的; 我想它最终会被接口替代.

{下面就定义了两个抽象方法}


TMyClass = class(TObject)
 procedure Proc1; virtual; abstract;   {抽象方法首先应该是一个虚方法或动态方法}
 function Fun: string; dynamic; abstract; {抽象方法也叫纯虚方法}
end;
{
 抽象方法在本类中只有定义、没有实现;
 抽象方法应该在子类中实现.
 如果一个类包含了抽象方法, 那么这个类也就成了抽象类;
 抽象类只能通过其子类来实例化, 自己不能生成对象.
 最常用的一个抽象类应该是 TStrings 了, 举例:
}
var
 List: TStrings;
 i: Integer;
begin
 List := TStringList.Create;
 for i := 0 to 99 do List.Add(IntToStr(i));
 Memo1.Lines := List;
 List.Free;
end;
{
 TStrings 类中包含了抽象方法, 但这些抽象方法在其子类 TStringList 中都得到了实现;
 因此, 我们虽然定义的是 TStrings 类的变量, 却要通过 TStringList 来实现.
 这里就有个问题, 我们直接使用 TStringList 不行吗? 为什么还要绕个弯?
 我觉得是: 这样才更符合"多态"的思想吧;
 仅就本例而言 Memo1.Lines 本身就是 TStrings 类型的, 这样可以避免类型冲突. 举例说明:
}

//这是个错误的例子

var
 List: TStringList; {如果定义为 List: TStrings 可消除错误}
begin
 List := TStringList.Create;
 List := Memo1.Lines; {这里会出问题}
 List.Free;
end;

//在 Delphi 7 及以前的版本中, 我们是通过查看一个类是不是有抽象方法来判断是不是抽象类的.{现在可以用 class abstract 声明抽象类, 譬如:}
TBass = class abstract(TObject)
 procedure Proc;
 function Fun: string; virtual; abstract;
end;
{但这好像仅仅是个提示, 如果其中没有抽象方法, class abstract 的定义只是个摆设, 譬如:}
TBass = class abstract(TObject)
 procedure Proc;
 function Fun: string;
end;
{和}
TBass = class(TObject)
 procedure Proc;
 function Fun: string;
end;

{使用起来没看出区别!DELPHI和JAVA不同,抽象类可以实例化,但是调用没有实现的抽象方法时会报抽象方法错:“Abstract Error”。}

 

转载于:https://www.cnblogs.com/zyc653/archive/2012/05/13/2497981.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Delphi是一种集成开发环境(IDE),被用于创建Windows平台上的应用程序。在Delphi中,我们可以使用自定义类来创建自己的数据类型和对象。 自定义类是用于封装数据和功能的模块化单元。通过自定义类,我们可以将相关的数据和方法组织在一起,以便更好地管理和操作。一个自定义类可以包含属性(对应数据)、方法(对应功能)和事件(对应触发器)。 在Delphi中,我们可以使用类向导来创建自定义类。类向导提供了一个可视化界面,可以设置类的属性和方法。首先,我们可以定义类的名称、父类(如果有)、接口(可选)等。然后,我们可以添加属性或方法,并为它们设置数据类型、访问修饰符和实现代码。最后,我们可以根据需要为类添加事件。 通过自定义类,我们可以创建多个对象,每个对象都具有相同的属性和方法,但它们的数据可以独立进行操作。我们可以在代码中通过实例化类来创建对象,并访问对象的属性和方法。 自定义类在Delphi中具有许多优点。首先,它提高了代码的可维护性和可读性,因为相关的数据和功能被组织在一起。其次,它提供了代码的重用性,因为我们可以在不同的应用程序中使用相同的类。另外,自定义类还支持面向对象编程的特性,如继承、封装和多态,使得我们可以更加灵活地设计和实现程序。 总之,Delphi的自定义类是一种强大的工具,可以帮助我们创建模块化、可维护和灵活的应用程序。通过类向导,我们可以轻松地创建自定义类,并利用它们来封装数据和功能,提高代码的可读性和重用性。 ### 回答2: Delphi是一种面向对象的编程语言,可以使用它来创建自定义类。自定义类是指根据程序需求,开发者可以创建自己定义的数据类型。 在Delphi中,我们可以使用class关键字来定义一个类。一个类由一组属性和方法组成。属性是类的数据成员,用于存储和表示对象的状态。方法是用于对对象进行操作和执行特定功能的函数。 在定义类时,需要考虑类的属性和方法。可以根据需要添加需要的属性,每个属性都有其类型和访问权限。属性的类型可以是基本数据类型,如整数、浮点数、字符等,也可以是其他自定义类。 类的方法定义了类的行为和功能,可以包括对属性的读取和设置、对象的初始化和析构等操作。方法可以是公共方法,可以在类的外部访问和调用;也可以是私有方法,只能在类的内部访问和调用。 自定义类的一个好处是可以根据需要封装和组织数据和功能,提高代码的可读性和可维护性。通过自定义类,可以建立具有相关属性和方法的对象实例,简化程序的设计和开发过程。 在Delphi中,可以使用自定义类来实现各种功能,如创建游戏角色、管理学生信息、处理文件操作等。通过定义各种属性和方法,可以使类适应不同的应用场景,并实现灵活的功能。 总的来说,Delphi的自定义类功能十分强大,可以根据需求创建各种数据类型并封装相关的操作,提高程序的可扩展性和可维护性。通过自定义类,可以实现更加灵活和高效的编程。 ### 回答3: Delphi 是一种高级的编程语言,它允许开发人员创建自定义类来实现特定功能和逻辑。自定义类是面向对象编程的基本概念之一,它允许开发人员将相关的数据和方法组织在一起,以便更好地管理和重用代码。 在 Delphi 中创建自定义类的过程非常简单,只需要按照一定的语法规则来定义类的成员即可。自定义类可以包含属性、方法和事件等成员。 属性是类的特征或状态,可以通过访问器(Getter)和修改器(Setter)来读取和修改属性的值。方法是类的行为,用于执行特定的操作或完成特定的任务。事件是类的响应机制,可以在特定的情况下触发特定的操作。 使用自定义类可以让开发人员更好地组织和管理代码,并且提高代码的重用性。当我们需要实现某项特定功能时,只需要创建一个适应需求的自定义类,并调用类的成员来实现相关的功能。 例如,我们可以创建一个自定义类来表示一个学生,该类可以包含学生的姓名、年龄和成绩等属性,还可以包含计算学生平均成绩的方法。当我们需要计算一个学生的平均成绩时,只需要创建一个学生对象,并调用平均成绩的计算方法即可。 总之,Delphi 提供了强大的功能来创建自定义类,使开发人员能够更好地组织和管理代码,并提高代码的可读性和可维护性。通过合理地使用自定义类,我们可以更加高效地开发出符合需求的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值