《.NET程序员面试秘笈》----面试题9 举例描述接口的作用

简介: 【考点】接口类型的理解,接口在程序中的意义。

本节书摘来自异步社区《.NET程序员面试秘笈》一书中的第1章,面试题9,作者: 张云翯, 更多章节内容可以访问云栖社区“异步社区”公众号查看。

面试题9 举例描述接口的作用

.NET程序员面试秘笈
【考点】接口类型的理解,接口在程序中的意义。

【出现频率】

【解答】

接口在程序设计中的作用为充当类或结构的功能界面,接口的属性、方法等属于抽象描述必须通过类或结构的实现才能使用。接口是使用者只知道接口有些什么功能,却不知道功能如何实现、由谁实现,这给程序的设计留下了很大的灵活性。例如某个项目由多个功能模块组成,每个模块由一个程序员完成,程序员只需编写完模块功能的实现后,留下该模块的接口供其他人使用。其他人在程序中只需直接使用接口的功能,而不必了解接口的功能如何实现等问题,其关系模型如图1.12所示。


ef77d37dff07d1d1a2aeb999d6c42e763d2107c5

说明:
使用者指在程序中使用接口功能的代码编写者。
当功能模块能力无法满足需要或功能模块的需求有变更时,程序员只需将该功能模块的实现代码部分进行修改或扩展,其他调用接口的程序无须变动。接口的这种应用模式可称为Bridge模式,Bridge模式即为分离意图和实现,以得到更好的扩展性。本例以Computer为接口,通过PCA类和PCB类实现该接口的功能。在ch01目录下新建一个程序文件,并命名为Interface.cs,编写代码如程序1.10所示。


c4fea28b64c165b0ea237a1372b02db11c98c24e


dc24a9add67d04d6ada1bbb83276ff4de1aa8abc

在命令行下编译Interface.cs后,执行Interface程序,其效果如图1.13所示。


e10628d361721f85d36520698d1156ae55178f1a

本例程序运行时,创建PCA类的实例,并将引用赋给接口类型a变量。第1行输出时,接口类型的a直接调用getcpu方法,在第2行输出中,a直接访问videocard属性。其属性和方法的操作实际为PCA类的实例所执行。接下来将PCB类的实例引用赋给a,再次输出的内容中,同样为a调用getcpu方法并访问videocard属性,其操作实际为PCB类的实例执行。由于接口的定义中videocard属性是只读的,所以无法进行写入操作,但是在PCB类中的videocard属性可写,所以创建PCB类型的实例操作videocard属性时,可直接写入用户输入值。

【分析】

接口是面向对象编程中一个非常重要的类型,和抽象类非常相似。接口类型无法被实例化,只能被其派生类或结构实现,其编写方法如以下代码所示:

interface 接口名称 [: 接口名称1,接口名称2]
{
 属性声明;
 方法声明;
 索引器声明;
 事件声明;
}

从以上代码可得知,接口可以继承多个接口,而类只能继承一个基类(单继承)。接口可描述属性、方法、索引器和事件,不过接口只能作声明,无法实现,所有声明必须由继承此接口的类或结构实现。必须要注意的是,接口的访问权限为public,类或结构实现接口的成员必须保持public,并且实现方法的签名必须和接口方法签名一致。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

相关文章
|
1月前
|
SQL 存储 Oracle
Oracle 面试题及答案整理,最新面试题
Oracle 面试题及答案整理,最新面试题
73 0
|
12天前
|
存储 缓存 安全
兄弟面试了百度,面试题分享一波
兄弟面试了百度,面试题分享一波
35 0
|
1月前
|
SQL 监控 大数据
DataGrip 面试题及答案整理,最新面试题
DataGrip 面试题及答案整理,最新面试题
69 0
|
1月前
|
监控 jenkins 持续交付
Jenkins 面试题及答案整理,最新面试题
Jenkins 面试题及答案整理,最新面试题
126 0
|
1月前
|
存储 开发框架 .NET
C# 面试题及答案整理,最新面试题
C# 面试题及答案整理,最新面试题
44 0
|
1月前
|
存储 安全 API
Swift 面试题及答案整理,最新面试题
Swift 面试题及答案整理,最新面试题
95 0
|
1月前
|
存储 安全 Java
Android 面试题及答案整理,最新面试题
Android 面试题及答案整理,最新面试题
80 2
|
26天前
|
Java 程序员
java线程池讲解面试
java线程池讲解面试
50 1
|
2月前
|
存储 关系型数据库 MySQL
2024年Java秋招面试必看的 | MySQL调优面试题
随着系统用户量的不断增加,MySQL 索引的重要性不言而喻,对于后端工程师,只有在了解索引及其优化的规则,并应用于实际工作中后,才能不断的提升系统性能,开发出高性能、高并发和高可用的系统。 今天小编首先会跟大家分享一下MySQL 索引中的各种概念,然后介绍优化索引的若干条规则,最后利用这些规则,针对面试中常考的知识点,做详细的实例分析。
246 0
2024年Java秋招面试必看的 | MySQL调优面试题
|
2月前
|
存储 算法 Java
铁子,你还记得这些吗----Java基础【拓展面试常问题型】
铁子,你还记得这些吗----Java基础【拓展面试常问题型】
46 1