type
Tman=class
......
......
end;Tchinese=class(Tman)
......
......
end;我需要创建Tchinese的一个实例 Aman:=Tchinese.create
那么定义变量时,写 Aman:Tman 和 Aman:Tchinese 有区别吗?什么情况下写什么?
Tman=class
......
......
end;Tchinese=class(Tman)
......
......
end;我需要创建Tchinese的一个实例 Aman:=Tchinese.create
那么定义变量时,写 Aman:Tman 和 Aman:Tchinese 有区别吗?什么情况下写什么?
TMan = class
public
procedure Eat; virtual; abstract;
end;
TChinese = class(TMan)
public
procedure Eat; override; // 用筷子
end;
TEnglish = class(TMan)
public
procedure Eat; override; // 用叉子
end;
// 其他国家的人吃饭......;
// 把吃的细节隐藏起来,系统总的业务逻辑:"人吃饭"不会变,而吃的细节由子类处理,如果该酒店有一天不接待某个国家的客人,系统总的业务逻辑也不会变,这叫依赖倒置原则。