今天看抽象类,组件类,普通类有点不是很明白,百度了这个文才弄懂了,呵呵
抽象类比较好区分,我就不介绍了,下面是组件类和普通类的区别
======================================
ArcEngine中 workSpace 就是一个可实实例化类
WorkSpace不能用new创建,但可以通过WorkSpaceFarctory.Openfromfile()方法来创建.如下:
IWorkspaceFactory pWorkspaceFactory = new AccessWorkspaceFactoryClass();
IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(ConnectionString, 0);
但当我们尝试用New去创建一个Workspace类时,如下:
IWorkspace pWorkspace = new WorkspaceClass();
就会出现以下错误:
“类型”ESRI.ArcGIS.Geodatabase.WorkspaceClass未定义构造函数;
所以,Class和CoClass的主要区别就是CoClass是带构造函数的Class.以此它可以用New直接创建对象。
======================================
以下为演示稿截图:
其中,Nest和Chicken 是聚合关系(Aggregation),既它们之间不共存。
Wings和Chicken是组合关系(Composition),它们共存,翅膀是鸡的一部分,鸡不在了翅膀也就没了。
我们可以:
iChicken pChicken //iChicken is an interface of Chicken
ppChicken = new Chicken //创建Chicken对象
iEgg pEgg //iEgg is an interface of Egg
//通过"Chicken"对象的"iChicken"接口下的“layeggs()"方法创建“Egg”对象
pEgg =pChicken.layegg();