1:虚类、虚方法、虚方法表、接口
它们各自怎么实现,是什么一个概念?
2:虚方法、抽象方法的区别和各自的作用?
3:Public、Private、Published的可见性
请各位高手赐教,最好能用自己的理解的语言
谢谢
它们各自怎么实现,是什么一个概念?
2:虚方法、抽象方法的区别和各自的作用?
3:Public、Private、Published的可见性
请各位高手赐教,最好能用自己的理解的语言
谢谢
调试欢乐多
virtual ~Graph()=0;表明声明了一个纯虚类。
纯虚类是不能实例化的,C++中没有纯虚类的析构函数,
另外:纯虚类不能生成对象。
抽象类:
作用是为了以后的继承 体现多态
学面向对象编程,最好是看C++的书。smalltalk大家用的少就免了吧!
TMyClass= class
procedure StaticFunc;//静态方法
procedure VirtualFunc;virtual;//虚拟方法
procedure DynamicFunc;Dynamic;//动态方法
procedure AbstractFunc;virtual;abstract;
1、虚类:如果该类拥有一个或一个以上虚方法,则该类即为虚类,如上面的类。
2、虚方法:声明的关键字为Virtual.因为虚方法可以被子类覆盖,所以
编译器在编译时并不能知道该虚拟方法的地址,因此编译器通过建立一个虚拟方法
表来查找运行时的函数(过程)地址。虚拟方法的调用方式和静态方法的调用方式相同。
3、虚方法表:一张记录虚拟方法和其调用地址等信息的表。一个对象的虚拟方法表既包括自己的虚拟方法也包括从祖先继承下来的虚拟方法表。因此比较耗内存。
虚拟方法表是编译器自动产生的,不需要人干预。
虚拟方法是实现多态的一种方法。父类中的虚拟方法可以被子类覆盖。
4、抽象方法必须是虚拟方法或动态方法,抽象方法不能有实现代码。抽象方法的实现代码是在其子类中实现。因此具有抽象方法的类不能被实例化。下面的代码是错误的:MyClass := TMyClass.create;
5、public 公有成员,表示其它的类可以访问其所属成员,其子类也继承其成员。
private 私有成员,其它类不能访问,也不能被继承.
protected 保护成员,其它类不能访问,但可被继承。
Published Delphi的类关键字,访问方式和Public相同,但Published成员可以出现在Object inspector;
type IMyinterface = interface
['{全局码}'] //按ctrl+shift+G自动产生.
function F1 :integer; //接口方法
end;
TMyClass = class(tinterfacedobject,IMyinterface)
function f1:integer;
end;
//实现f1函数
function TMyClass.F1 :integer;
begin
Result := 0;
end;则我们可以写如下代码:
var
myinterface:IMyInterface;
begin
MyInterface := TMyClass.Create;
end;注意:delphi的类和C++中的类概念还是有区别的。delphi简化了许多东东。
接口:你可以先把它看成纯虚的抽象类(virtual;abstract;)
你所问的问题都是面向对象编程必备的一些概念,当然面向对象编程远远不止这些。我建议你先找一本C++编程书中关于类的部分看看,然后再看看Delphi关于类的使用部分。知道怎么使用类,面向对象编程也就差不多了。学习面向对象编程还是C++比较好。Delphi的Object Pascal语言把类的概念简化了很多.
谢谢
我想听听大家的
因为大家说的可能更加的贴近我们的实际
书上说的好模糊