[转]原文链接:https://malagis.com/arcgis-engine-10-develop-handbook-2-1.html

使用 ArcGIS Engine,也就意味着使用里面的接口,那么什么是接口呢?在面向对象的编程中,我们都 会接触到这个玩意儿,我们知道面向对象有三大特性 封装,继承,多态,相信很多人在学习多态的时候, 会接触接口。接口可以用这样一句话来描述“接口就是包含一系列不被实现的方法.而把这些方法的实现交给继承它的类.”,这句话看起来很晦涩,没关系,我们通过下面一个例子说明 我定义了一个接口 IPeople。

 using System.Collections.Generic;
using System.Linq; using System.Text; namespace InterfaceTest {
interface IPeople {
void gender();
}
}

这个接口里面有一个性别的方法,这个只对方法进行了定义,而方法内却没有内容,也就是说,通过 这个接口的这个 gender 方法,我们不能知道它到底干什么,但是要知道这个 gender 到底是干什么用的,那 么就要看实现了这个方法的类。同理我定义两个类,分别实现这个接口。

Boy类代码

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace InterfaceTest {
class Boy : IPeople
{
public void gender ()
{
Console.WriteLine ("I’m a boy.");
}
}
}

Girl类代码

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace InterfaceTest
{
class Girl : IPeople
{
public void gender ()
{
Console.WriteLine ("I’m a girl.");
}
}
}

通过上面的两个类,我们就很清楚的看到这个方法的作用了,我们也可以看到一个接口可以被多个类 实现。现在我们在一个主函数里分别调用这两个类,代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace InterfaceTest
{
class Program
{
static void Main (string[] args)
{
IPeople Person; // 声明接口变量
Person = new Boy (); // 实例化,接口变量中存放对象的引用
Person.gender (); // 这个调用的是Boy中的gender方法
Person = new Girl (); // 实例化,接口变量中存放对象的引用
Person.gender(); // 这个调用的是Gril中的gender方法 Console.ReadLine();
}
}
}

我们运行一下这个,看到如下的效果:

最新文章

  1. js 中实现页面跳转的方法(window.location和window.open的区别)
  2. 【Win10】【译】提交 UWP 应用时遇到意料之外的语言?
  3. 使用 Swift 制作一个新闻通知中心插件(1)
  4. DataSet用法详细
  5. HQL查询
  6. Windows Server 2008搭建域控制器《转载51CTO.com》
  7. cocos2d-x2.x环境搭建配置
  8. js预解析问题总结
  9. js操作cookie 使用详解
  10. ECharts折线图多个折线每次只显示一条
  11. AX2009 批处理作业中使用多线程---独立任务模式
  12. SpringMVC跨域问题排查以及源码实现
  13. 动态追加js
  14. eclipse配置文件乱码
  15. springMVC4(7)模型视图方法源代码综合分析
  16. 13、cookie
  17. canvas里设置width和css里设置width和js里设置width的区别
  18. [转帖]kubeadm 实现细节
  19. Ubuntu 18.04及Snap体验——让Linux入门更简单(转))
  20. How To View the HTML Source in Google Chrome

热门文章

  1. Expert C Programming(C专家编程) 读书笔记
  2. spring mvc5 的 配置文件 pom.xml
  3. AGC018F - Two Trees
  4. 清北学堂—2020.1提高储备营—Day 4 afternoon(动态规划初步(一))
  5. 首次使用Lambda表达式-sunziren
  6. 洛谷P1880 [NOI1995]石子合并 纪中21日c组T4 2119. 【2016-12-30普及组模拟】环状石子归并
  7. [TJOI2007] 足彩投注
  8. 【笔记】机器学习 - 李宏毅 - 3 - Bias & Variance
  9. [51nod 1256] 乘法逆元 - exgcd
  10. SecureCRT 按退格键出现 ^H 的解决办法