unit Unit3;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls,System.Generics.Collections; type
TForm3 = class(TForm)
btn1: TButton;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
THttpResult<T: TStrings, constructor> = class //限定T 为某个类型,
private
fIsSucc: Boolean;
fData: T;
fMsg: string;
fUrl: string;
fParamStr: string;
public
end;
ThttpResultA =class(THttpResult<TStrings>)
end;
ThttpResults =class(THttpResult<TStringList>)
end;
A<T> =class
end;
AA<T> =class(A<T>) //AA=class(A<T>) 这样写会提示说为定义T
end;
B=class(A<ThttpResultA>) //B=class(A<int>) 这里会错误, B<T>=class(A<int>)这样不错
end;
C<B>=class(A<ThttpResultA>) //这里的B并不是B类,而是一个没有任何意义的 占位符
end;
D<T>=class(A<ThttpResultA>) //这里的B并不是B类,而是一个没有任何意义的 占位符
private
fIsSucc :Boolean;
public
function QueryData<B>(url:string):string;
function QueryData2<T>(url:string):string; //QueryData<T>(url:string):string; 这样会被认为和上一个函数相同
end;
TGQlist<T> = class(TList<T>) //包含System.Generics.Collections, TGQlist= class(TList<T>) 这样写是错误的
end;
var
Form3: TForm3; implementation {$R *.dfm} procedure TForm3.btn1Click(Sender: TObject);
var
temp :TStringList;
temp2 :A<string>; //可以这么用法。
begin
temp2 := A<string>.Create; //创建类
end; { D<T> } function D<T>.QueryData<B>(url: string): string;
begin
//
end; function D<T>.QueryData2<T>(url: string): string;
begin end; end.

D- 泛型练习 ,继承,方法的更多相关文章

  1. 使用java泛型设计通用方法

    泛型是Java SE 1.5的新特性, 泛型的本质是参数化类型, 也就是说所操作的数据类型被指定为一个参数. 因此我们可以利用泛型和反射来设计一些通用方法. 现在有2张表, 一张user表和一张stu ...

  2. JavaScript面向对象继承方法

    JavaScript的出现已经将近20多年了,但是对这个预言的褒贬还是众说纷纭.很多人都说JavaScript不能算是面向对象的变成语言.但是JavaScript的类型非常松散,也没有编译器.这样一来 ...

  3. JS中的类,类的继承方法

    大牛请无视此篇! 首先我们定义一个类,方法很简单,就像我们定义函数一样,只不过我们为了与函数区分,名称首字母要大写,看代码: function Person (){ } 这就是一个很简单的Poson类 ...

  4. 《objective-c基础教程》学习笔记(五)—— 继承方法

    在上一篇博文中,我们将原先的纯C语言代码,编写成了用Objective-C(后面直接缩写成OC)的写法.使得代码在易读性上有明显提升,结构也更清晰.同时,也对面向对象的概念有了进一步的介绍和加深. 但 ...

  5. C# : 泛型的继承关系实现的一个可以存放不同数据类型的链表

    以下定义的是一个链表结点类型: internal sealed class Node<T> { public T m_data; public Node<T> m_next; ...

  6. Happy Java:定义泛型参数的方法

    在平时写代码时,可以自定义泛型类.当使用同一类型的对象时,这是非常有用的,但在实例化类之前,我们不知道它将是哪种类型. 下面让我们定义一个使用泛型参数的方法.首先,在定义一个类用到泛型时,必须使用特殊 ...

  7. Date类型之继承方法

    ECMAScript中的Date类型是在早期Java中的java.util.Date类型基础上构建的.为此,Date类型使用自UTC(国际协调时间)1970年1月1日午夜零时开始经过的毫秒数来保存日期 ...

  8. js oop中的三种继承方法

    JS OOP 中的三种继承方法: 很多读者关于js opp的继承比较模糊,本文总结了oop中的三种继承方法,以助于读者进行区分. <继承使用一个子类继承另一个父类,子类可以自动拥有父类的属性和方 ...

  9. javaSE练习13——(知识点:类的继承 方法的覆盖)

    设计2个类,要求如下: (知识点:类的继承 方法的覆盖)1.定义一个汽车类Vehicle, 1.1 属性包括:汽车品牌brand(String类型).颜色color(String类型 )和速度spee ...

  10. js继承的几种方法和es6继承方法

        一.原型链继     1.基本思想     利用原型链来实现继承,超类的一个实例作为子类的原型     2.具体实现     function F() {}     //原型属性,原型方法: ...

随机推荐

  1. BZOJ3786星系探索——非旋转treap(平衡树动态维护dfs序)

    题目描述 物理学家小C的研究正遇到某个瓶颈. 他正在研究的是一个星系,这个星系中有n个星球,其中有一个主星球(方便起见我们默认其为1号星球),其余的所有星球均有且仅有一个依赖星球.主星球没有依赖星球. ...

  2. POJ2492-A Bug's Life-并查集扩展应用

    维护一个relation数组,保留着此元素和根元素之间的性别关系.之后就可以判断gay了. #include <cstdio> #include <algorithm> #in ...

  3. HDU4414-DFS

    给一个图,寻找十字交叉的个数,十字交叉应为两个大于3的奇数交叉与正中央.图的大小很小. 使用DFS搜八连块,之后按照规则筛选出符合条件的交叉. 我的筛选规则有点蠢,先将点排序,再通过三段for循环判断 ...

  4. Codeforces Round #412 C. Success Rate

    C. Success Rate time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...

  5. 09 Zabbix Item类型之Zabbix SNMP类型

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 Zabbix Item类型之Zabbix SNMP类型 SNMP是监控服务器以外设备的非常好的方式 ...

  6. 部署kubernetes1.8.4+contiv高可用集群

    原理和架构图参考上一篇,这里只记录操作步骤.由于东西较多,篇幅也会较长. etcd version: 3.2.11 kube version: 1.8.4 contiv version: 1.1.7 ...

  7. Raspbian首次安装后无法使用SSH链接

    使用Putty连接树莓派,出现Network Error:Connection Refused 新版的Raspbian系统默认禁用了SSH. 解决方法:在/boot分区创建名为"ssh&qu ...

  8. zTree重命名节点时,操作的那个dom(类似input框那个)怎么写

    <script type="text/javascript"> //tree的编辑节点的方法 ztree.editName(nodeNew[0]); /// $(&qu ...

  9. 基本数据类型对象包装(Integer等)

    基本数据类型 包装类 byte Byte short             Short int   Integer long Long boolean Boolean float          ...

  10. 2018.7中石油个人赛第4场(D-Transit Tree Path)-最短路算法

    6690: Transit Tree Path 时间限制: 1 Sec  内存限制: 128 MB提交: 472  解决: 132[提交] [状态] [讨论版] [命题人:admin] 题目描述 Yo ...