在AO开发中,经常会遇到类似的声明:
IBasicMap pMap=new MapClass();
于是就会产生这种疑问,为什么不这样声明呢?
MapClass pMap=new MapClass();
如果这样声明,将会编译错误,不能通过类的全权名进行方法的调用,只能用接口实例来访问。
这是因为Class(如上例中MapClass)里实现相关接口的方法, 属性是以显式接口的方式实现的。
举个简单的例子:
interface IZou
{
void start();
void stop();
}
class Person : IZou
{
void IZou.start()//注:显式接口
MessageBox.Show("开始走");
}
如果此时用
Person p=new Person();
就会产生编译错误。
只能用
IZou p=new Person();
分享到:
相关推荐
【描述】提到这个教程基于vc++的开发环境,这可能是指教程中使用的是Visual C++作为集成开发环境(IDE),虽然C#和VC++通常不直接关联,但有可能是在VC++环境中使用了.NET Framework进行C#项目开发。教程内容涵盖了AO...
**AO基础开发教程** 在GIS(地理信息系统)领域,AO(ArcObjects)是ESRI公司提供的核心开发组件,用于构建基于ARCGIS平台的应用程序。...无论你是GIS新手还是有经验的开发者,这份教程都能为你提供宝贵的指导。
本教程主要针对ESRI公司的ArcGIS家族中的应用程序开发平台AO(ArcObjects)展开,讲解如何使用VBAArcObjects进行编程,以实现对ArcMap™, ArcCatalog™ 和 ArcScene™的客户化界面定制和功能扩展。AO是一系列基于...
《ArcGIS AO开发教程》是一本专为C++开发者设计的高级指南,旨在深入解析如何利用ArcGIS平台的ArcObjects组件进行地图应用的开发。ArcObjects是Esri公司提供的核心API,它允许开发者直接操控ArcGIS的核心功能,包括...
普通类虽然不能直接实例化,但可以通过其他类的实例化来创建。在ArcGIS开发中,通过实例化特定的接口,例如IFeatureClass和IMap,可以操作地图层和地图对象。 总结来说,ArcGIS提供了强大的地理信息系统开发平台,...
抽象类定义了子类需要实现的接口,组件类可以直接创建对象,而普通类通常作为其他类的属性或通过其他类的实例化来创建。 总的来说,AO开发实践课涵盖了ArcGIS的基本概念、开发方式、ArcObject的使用以及COM编程的...
- **Application**: 是ArcMap启动后首先创建的对象,它负责管理所有其他对象的创建和实例化。 - **MxDocument**: ArcMap启动时自动创建的对象,用于表示地图文档(Map Document)。 - **Map**: 表示地图(Map)本身,...
例如,可以通过`IApplication`接口获取ArcMap实例,并进一步使用`ICommand`和`ICommandBar`接口来创建自定义命令和工具栏项。 #### 五、ArcObjects控件的应用 ##### 3.1 MapControl的使用 MapControl是ArcObjects...
4. **在ArcMap中使用VBA宏命令.pdf**:Visual Basic for Applications (VBA)是ArcMap中的脚本语言,用于自动化工作流和扩展功能。这份文件将教导读者如何编写VBA宏来定制ArcMap的用户界面,例如自定义工具条、菜单项...
在这个"GIS应用开发实例源代码"压缩包中,我们可以看到一系列与GIS开发相关的源代码,主要基于C#语言和ArcGIS平台的AO(ArcObjects)组件进行开发。 1. **ArcGIS应用程序框架扩展**:ArcGIS提供了可扩展的应用程序...
根据给定的文件信息,我们可以总结并扩展一系列与AO(ArcObjects)相关的知识点,以便更好地理解和掌握AO在地理信息系统(GIS)开发中的应用。 ### ArcObjects (AO) 概览 #### 1.1 ArcObjects 的定义 **ArcObjects...
普通类通常不能直接实例化,它们需要通过特定的工厂类或接口方法来创建,如`SdeWorkspaceFactoryCoClass`的`Open`方法用于创建`Sde3WorkspaceClass`或`Sde4WorkspaceClass`实例。而组件对象类可以直接通过`new`...
综上所述,"四方继保 AI121/AO121 可编程自动化控制器数据表.rar"文件中的内容涵盖了控制器的核心技术指标、硬件配置、软件功能以及实际应用的指导,对于工程师来说是一份非常重要的参考资料。通过深入学习这份数据...
在这个实例中,我们将探讨如何使用JBPM来构建一个请假流程。 **一、JBPM简介** JBPM(JBoss Business Process Management)是Red Hat公司开发的一个用于业务流程管理(BPM)的Java框架。它提供了一整套工具,包括...
1. **开发语言和后台数据库升级**:AO2011采用微软.NET平台下的C#作为开发语言,相比AO2008的Borland Delphi,这为软件提供了更强的性能和扩展性。同时,后台数据库从Access升级至SQL Server 2008,提高了数据处理...
抽象类用于定义子类的公共接口,不能直接实例化;组件类可以直接创建对象;普通类则不能直接创建,但可通过其他类的属性或实例化创建。 在实际开发过程中,开发者会使用这些概念和技术来创建自定义GIS应用程序,...
- **输入/输出过程映像区**:CPU不直接访问I/O模块中的输入/输出地址区,而是通过内部的过程映像区进行访问,提高处理速度和稳定性。 **外部电路与PLC的关系** - 当外部输入电路接通时,相应的输入过程映像位设置为...
这些对象是由类(Class)实例化产生的,类定义了对象的属性和行为。 #### 六、AO与COM的关系 COM (Component Object Model) 是一种二进制级别的组件模型标准,用于实现组件之间的交互。AO正是基于COM技术构建的,它...
标题中的“main_FSR薄膜压力传感器51代码”表明这是一个关于使用51单片机(如STC12C5A)控制FSR(Force Sensitive Resistor,力敏感电阻)薄膜压力传感器的项目。FSR传感器是一种能够将施加在其上的压力转换为电阻...
例如,创建一个 `User` 类的实例,并使用 `toJSONString()` 方法将其转换为 JSON 字符串: ```java User u = new User("Biao", 23); System.out.println(JSON.toJSONString(u)); ``` 2. JSON 转对象 反之,...