Delphi中类的继承与多态
1、打开Delphi7继承开发环境,在默认工程的Form1窗体放置两个Button,分别设置Caption为:调用子类1和调用子类2

2、在type区定义三个类一个父类TAnimal,两个子类一个TDog,另一个TCat,都有eat方法,但是子类进行覆盖,代码如下:
TAnimal = class
procedure eat();virtual;
end;
TDog = class(TAnimal)
procedure eat();override;
end;
TCat = class(TAnimal)
procedure eat();override;
end;

3、下面进行三个类的eat方法编写,代码如下:
{ TAnimal }
procedure TAnimal.eat;
begin
showmessage('annimal eat anything');
end;
{ TDog }
procedure TDog.eat;
begin
showmessage('dog eat gutou');
end;
{ TCat }
procedure TCat.eat;
begin
inherited;
showmessage('cat eat fish');
end;
TDog直接覆盖了TAnimal的eat方法,TCat先继承,再写自己类的方法代码。

4、双击调用子类方法1按钮进入事件方法,并写如下代码;
procedure TForm1.Button1Click(Sender: TObject);
var
dog:TDog;
begin
dog := TDog.Create;
dog.eat;
end;
实现TDog类的实例,调用eat方法

5、双击调用子类方法2按钮进入事件方法,并写如下代码;
procedure TForm1.Button2Click(Sender: TObject);
var
cat:TCat;
begin
cat := TCat.Create;
cat.eat;
cat.Free;
end;
实现TCat类的实例,调用eat方法

6、F9运行程序,点击调用方法1,会弹出对话框,内容:dog eat gutou

7、点击调用方法2,会先弹出对话框,内容:annimal eat anything.再弹出对话框,内容:cat eat fish

