文档章节

关于子类与父类的转换, 还有多态的说明 - 回复 "靳承柱" 和 "志成" 的问题

涂孟超
 涂孟超
发布于 2014/09/26 15:35
字数 294
阅读 7
收藏 0
问题来源: http://www.cnblogs.com/del/archive/2008/08/22/1002959.html#1294593

//关于父类与子类的类型转换:
procedure TForm1.FormCreate(Sender: TObject);
var
  List1: TStrings;
  List2: TStringList; {TStringList 是 TStrings 的子类}
begin
  List1 := TStringList.Create; {List1 只能通过其子类实现}
  //List1 := TStrings.Create;  {不能这样建立, 因为 TStrings 是抽象类, 不能自己实现}
  List2 := TStringList.Create;

  {TStrings 里没有排序方法 Sort}
  //List1.Sort; {所以这样不行}
  List2.Sort;   {List2 所属的 TStringList 有这个方法}

  {但可以把 List1 转换一下}
  TStringList(List1).Sort; {这就没问题了}

  {但如果把 List2 转为 TStrings, 那 List2 也就丢失了 Sort}
  //TStrings(List2).Sort; {所以这样不行}

  List1.Free;
  List2.Free;
end;

 
 
 
 
 

 

 

  
//为什么要那个抽象的父类? 答案有很多, 其中之一就是为了实现多态. 譬如:
procedure TForm1.FormCreate(Sender: TObject);
var
  stream: TStream; {这是很多流类的祖先, 也是抽象类; 只能通过其子类来实例化}
begin
  {可以用 TMemoryStream 来实现 stream}
  stream := TMemoryStream.Create;
  {...}
  stream.Free;

  {也可以用 TFileStream 来实现 stream}
  stream := TFileStream.Create('c:\temp\Test.dat', fmCreate);
  {...}
  stream.Free;

  {不同的实现会让 stream 拥有不同而又相似的功能}
end;

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2008/08/22/1273923.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
谈谈多态

概述 我们都知道面向对象有四个基本特性:抽象、封装、继承、多态。这四个特性,概括起来可以这么理解,抽象、封装、继承是多态的基础,多态是抽象、封装、继承的表现。多态,是Java中非常重...

Galy_绿
2016/07/11
21
0
Java基础进阶 第四天 抽象接口多态

今日任务: 1,能够独立使用抽象类 2,能够独立使用多态 3,能够独立使用接口 4,能够理解适配器设计模式 1. 抽象类 1.1. 抽象类的产生 需求:创建类描述猫和狗的行为; 猫的行为:抓老鼠;吃...

Villain丶Cc
06/03
0
0
C#基础篇--面向对象(类与对象)

1.类是什么?    类就相当于模板,就是把同一类的事物的共同特征进行的抽象。   类的创建和说明:     类是先根据一些具体的对象(实体的东西)来抽象出来的共同的特性,然后用代码来表...

me黄小峰
2013/07/21
0
0
JVM--再谈继承与多态

此文试图从JVM层面深刻剖析Java中的继承与多态,知识面覆盖class字节码文件,对象的内存布局,JVM的内存区域、分派,方法表等相关知识,内容整合于大量博客,知乎,书籍,并加上博主自己的理...

championhengyi
01/10
0
0
Java基础笔记 -------------面向对象上(三大特性)

面向对象三个特性:继承(Inheritence)、封装(Encapsulation)、多态(Polymorphism). 1、封装(Encapsulation): 类包含了数据与方法,将数据与方法放在一个类中就构成了封装(一般来说,...

查封炉台
2014/04/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

颜色模型与颜色应用---光的特性

电磁频谱 颜色的心理学特征

中国龙-扬科
20分钟前
2
0
android音频及强噪相关

Android AudioRecord和AudioTrack介绍(Android音频收集和播放 麦克风降噪) https://blog.csdn.net/tanningzhong/article/details/72844559 音频采集(AudioRecorder) https://www.jianshu.......

whoisliang
27分钟前
2
0
redis-持久化

RDB rdb持久化是把当前进程数据生成快照保存到磁盘的过程。触发RDB持久化过程分为手动触发和自动触发。 触发机制 bgsave执行流程 rdb优缺点 AOF 记录每次写命令,重启时再重新执行aof文件中的...

grace_233
32分钟前
3
0
电话激活Windows 中文操作系统步骤

已购买微软MAK批量授权,系统又在企业内网中,无法通过连接Internet进行激活,还可以通过电话完成激活。 前期准备 请提前准备好产品密钥,Product Key格式如下:XXXXX-XXXXX-XXXXX-XXXXX-XXX...

tonyfox
34分钟前
4
0
Apache用户认证,域名跳转,访问日志

Apache用户认证 当设置了用户认证后,用户访问网站时,需要输入用户名和密码才能访问。 可以全局设置,也可以为某几个虚拟主机单独配置。 下面以全局配置进行操作示例。 编辑httpd.conf进行配...

野雪球
38分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部