1子类和父类间的相互调用关系unit Unit1;
 2子类和父类间的相互调用关系
 3子类和父类间的相互调用关系interface
 4子类和父类间的相互调用关系
 5子类和父类间的相互调用关系type
 6子类和父类间的相互调用关系  TForm1 = class(TForm)
 7子类和父类间的相互调用关系    Button1: TButton;
 8子类和父类间的相互调用关系    Button2: TButton;
 9子类和父类间的相互调用关系    procedure Button1Click(Sender: TObject);
10子类和父类间的相互调用关系    procedure Button2Click(Sender: TObject);
11子类和父类间的相互调用关系  private
12子类和父类间的相互调用关系    { Private declarations }
13子类和父类间的相互调用关系  public
14子类和父类间的相互调用关系    { Public declarations }
15子类和父类间的相互调用关系  end;
16子类和父类间的相互调用关系
17子类和父类间的相互调用关系implementation
18子类和父类间的相互调用关系  uses
19子类和父类间的相互调用关系   Person, ET;  //引用自定义的两个类
20子类和父类间的相互调用关系procedure TForm1.Button1Click(Sender: TObject);
21子类和父类间的相互调用关系 VAR
22子类和父类间的相互调用关系  tulater: TPerson;
23子类和父类间的相互调用关系begin
24子类和父类间的相互调用关系  tulater := TPerson.Create; //Blood此时初始化为'O'
25子类和父类间的相互调用关系  tulater.myName := '涂磊';
26子类和父类间的相互调用关系  tulater.High := 156;
27子类和父类间的相互调用关系  //tulater.DNA := 'asdfwefkooj3249rrj9';
28子类和父类间的相互调用关系//上面一行错://Protected属性在此单元内(属性定义的单元)和子类属性定义的单元内可见 和直接访问使用 DNA
29子类和父类间的相互调用关系
30子类和父类间的相互调用关系  tulater.setDNA('asdfwefkooj3249rrj9');
31子类和父类间的相互调用关系//只能以上面方法间接访问Protected属性,通过public的方法
32子类和父类间的相互调用关系 // tulater.Blood := 'O';
33子类和父类间的相互调用关系//上面一行错://Private属性只在Blood属性定义的单元内可见,和直接访问使用 Blood
34子类和父类间的相互调用关系  ShowMessage(tulater.myName + #13#10 + '身高= ' + IntToStr(tulater.High) + #13#10 + '血型= ' + tulater.getBlood
35子类和父类间的相互调用关系  + #13#10 + 'DNA= ' + tulater.getDNA);
36子类和父类间的相互调用关系  tulater.Free;
37子类和父类间的相互调用关系end;
38子类和父类间的相互调用关系
39子类和父类间的相互调用关系procedure TForm1.Button2Click(Sender: TObject);
40子类和父类间的相互调用关系 VAR
41子类和父类间的相互调用关系  ETfish: TET;
42子类和父类间的相互调用关系begin
43子类和父类间的相互调用关系  ETfish := TET.Create;
44子类和父类间的相互调用关系  ETfish.myName := '外星鱼';
45子类和父类间的相互调用关系  ETfish.High := 15;
46子类和父类间的相互调用关系  //ETfish.DNA := 'asdfwe$%#%#%%Q#%%#%24#9rrj9';
47子类和父类间的相互调用关系  ETfish.setDNA('asdfwe$%#%#%%Q#%%#%24#9rrj9');
48子类和父类间的相互调用关系 // ETfish.Blood := 'O';
49子类和父类间的相互调用关系  ShowMessage(ETfish.myName + #13#10 + '身高= ' + IntToStr(ETfish.High) + #13#10 +
50子类和父类间的相互调用关系  '血型= ' + ETfish.getBlood  + #13#10 +
51子类和父类间的相互调用关系  'DNA= ' + ETfish.getDNA + #13#10 +
52子类和父类间的相互调用关系  'UFOSpeed= ' + IntToStr(ETfish.getUFOSpeed) ) ;
53子类和父类间的相互调用关系  ShowMessage('初始化时 UFOSpeed=' + IntToStr(ETfish.getUFOSpeed));
54子类和父类间的相互调用关系  ETfish.setUFOSpeed(41458174);
55子类和父类间的相互调用关系  ShowMessage('现在 UFOSpeed=' + IntToStr(ETfish.getUFOSpeed));
56子类和父类间的相互调用关系
57子类和父类间的相互调用关系  ETfish.Free;
58子类和父类间的相互调用关系end;
59子类和父类间的相互调用关系
60子类和父类间的相互调用关系end.
61子类和父类间的相互调用关系
62子类和父类间的相互调用关系

 1子类和父类间的相互调用关系unit ET;  //TET类声明所在单元
 2子类和父类间的相互调用关系interface
 3子类和父类间的相互调用关系  uses
 4子类和父类间的相互调用关系   CLASSES,Dialogs,Person;
 5子类和父类间的相互调用关系TYPE
 6子类和父类间的相互调用关系  TET = CLASS(TPerson) //完全继承Person所有的属性和方法
 7子类和父类间的相互调用关系  private         //加入子类新的属性和方法
 8子类和父类间的相互调用关系    UFOSpeed: Integer;
 9子类和父类间的相互调用关系    { Private declarations }
10子类和父类间的相互调用关系  public
11子类和父类间的相互调用关系    CONSTRUCTOR Create;
12子类和父类间的相互调用关系    PROCEDURE setUFOSpeed(aSpeed: Longword);
13子类和父类间的相互调用关系    FUNCTION getUFOSpeed: Longword;
14子类和父类间的相互调用关系    { Public declarations }
15子类和父类间的相互调用关系  end;
16子类和父类间的相互调用关系implementation
17子类和父类间的相互调用关系
18子类和父类间的相互调用关系FUNCTION TET.getUFOSpeed: Longword;
19子类和父类间的相互调用关系BEGIN
20子类和父类间的相互调用关系    result := self.UFOSpeed;     //读取Private 成员的值
21子类和父类间的相互调用关系end;
22子类和父类间的相互调用关系
23子类和父类间的相互调用关系PROCEDURE TET.setUFOSpeed(aSpeed: Longword);
24子类和父类间的相互调用关系BEGIN
25子类和父类间的相互调用关系   self.UFOSpeed := aSpeed;   //以参数设定Private 成员的值
26子类和父类间的相互调用关系end;
27子类和父类间的相互调用关系
28子类和父类间的相互调用关系CONSTRUCTOR TET.Create;
29子类和父类间的相互调用关系BEGIN
30子类和父类间的相互调用关系  INHERITED Create;   //调用直接父类Tperson的Create方法//  ShowMessage('Tperson.Create 执行');
31子类和父类间的相互调用关系  ShowMessage('TET.Create 执行');
32子类和父类间的相互调用关系  Self.UFOSpeed := 300000000;    //Private属性只在属性定义的单元内可见,只可以在这里这样直接访问使用 UFOSpeed
33子类和父类间的相互调用关系end;
34子类和父类间的相互调用关系VAR   //为测试而设置此区
35子类和父类间的相互调用关系  AET : TET;
36子类和父类间的相互调用关系BEGIN
37子类和父类间的相互调用关系  AET := TET.Create;
38子类和父类间的相互调用关系  AET.DNA := 'fdsafsrfwefsd$#^^3';//父类的Protected属性在子类单元(本单元)内可见 ,在这里这样直接访问使用
39子类和父类间的相互调用关系  //AET.Blood := 'A'//父类的Private属性在子类单元(本单元)内不可见(只在其属性定义的单元内可见) ,在这里这样不能直接访问使用
40子类和父类间的相互调用关系  ShowMessage('AET.DNA = ' + AET.DNA );
41子类和父类间的相互调用关系  AET.Free;
42子类和父类间的相互调用关系end.
43子类和父类间的相互调用关系end.
44子类和父类间的相互调用关系
45子类和父类间的相互调用关系

相关文章:

  • 2022-12-23
  • 2021-12-24
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-02-22
  • 2021-09-28
  • 2022-01-10
  • 2021-11-16
  • 2022-12-23
  • 2022-12-23
  • 2021-06-03
相关资源
相似解决方案