[《.net框架程序设计》]第十五章 接口

原创 2004年07月13日 15:39:00

第十五章 接口

摘要:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

   接口的应用及完全限定名方式定义接口的应用。

 

一、 接口与继承

l C#支持单实现继承和多接口继承

l 接口中可以定义:事件、无参属性(属性)、含参属性(索引器);C#不允许接口定义任何静态成员(CLR却允许定义静态成员);CLR不允许接口定义实例字段和构造器。

l 缺省为public abstract 方法,但不可用任何修饰符进行修饰(包括public

l 将值类型转换为接口类型(假设其实现了某个接口),则值类型被装箱为引用类型,以调用其中的接口方法。

 

实现接口继承或实现继承的原则:

l 存在IS-A关系使用实现继承,存在CAN-DO关系使用接口继承

l 实现继承可继承父类型的实现,由于接口中没有定义方法的实现,因此继承后必须实现方法

l考虑到每个人对接口实现的不同,使用实现继承可同一部分功能的实现

l 为父类型添加方法可能不影响使用继承自该类型实现的用户,而为接口添加方法导致用户必须为新方法添加实现

二、 利用接口改变已装箱类型中的字段

    实际上是将已装箱类型转型为接口类型,然后通过调用方法进行值改变。

因为对已装箱类型进行拆箱到原值类型将在堆栈上声称新的值类型,调用这个新的值类型的方法不能改变以装箱类型的值。

 

三、 实现多个有相同方法的接口

使用 接口名.方法名 的形式声明实现了那个接口的方法。成为 完全限定接口名,这样定义的方法被认为是私有方法,不能使用类型本身调用;当将类型转换为接口类型时,完全限定接口名定义的方法又变成一个公有方法。(比较奇特,也很有用);使用完全限定接口名定义的方法不能使用任何访问修饰符。

 

四、显示接口成员实现

    问题的提出:通常接口接受的参数为Object,这样的参数非强类型安全的,可能需要在我们自定义类型的接口实现中定义强类型安全的方法,同时也需要实现“接口合同”

    问题解决:通过上面的完全限定接口名方式定义接口方法,可达到这样的效果。

   优点:获得强类型支持,可在编译期发现类型不匹配问题,而不是到运行期。同时,调用自定义的方法不必进行装箱操作,提高了效率。

    缺点:由于我们在类型中隐藏了接口实现(必须将转型为接口才能暴露出接口定义的方法),因此可能对使用造成不便,因此应该慎用该方法。

Java语言程序设计(基础篇)原书第十版 课后习题 第五章

import java.util.Scanner; public class Code_Practice_5 { public static void main(String[] args) {...
  • zjjoebloggs
  • zjjoebloggs
  • 2015年10月21日 20:27
  • 9900

java语言程序设计基础篇第十二章编程练习题

1package yongheng; import java.util.Scanner;public class Calculator { public static void main(Str...
  • gyhguoge01234
  • gyhguoge01234
  • 2016年09月08日 22:21
  • 2529

java程序设计基础_陈国君版第五版_第十一章习题

java程序设计基础_陈国君版第五版_第十一章习题 /** * 题目:假设某家银行可接受顾客的汇款,每进行一次汇款,便可计算出汇款的总额。现有两名顾客,每人分三次,每次一百元将钱汇入。试编程来模拟...
  • gaoenbin626
  • gaoenbin626
  • 2016年03月14日 10:03
  • 2234

.NET框架程序设计——体系结构

谈到.NET,相信对于大多数初学者而言,都会感觉比较乱、比较迷茫,什么ASP.NET、VB.NET、VC.NET、ADO.NET、.NETFramework 等等概念,搞的我们晕头转向的,他们之间到底...
  • dongyue786
  • dongyue786
  • 2014年10月15日 15:47
  • 1922

学习《.net框架 程序设计》学习笔记---委托(一)

一.认识委托      在.net框架中,回调函数任然像在非托管windows编程中一样有用和普遍。但是,.net框架为回调函数提供了一种称为委托(delegate)的类型安全的机制。      例如...
  • pandeveloper
  • pandeveloper
  • 2011年06月22日 13:13
  • 354

Microsoft .NET框架程序设计读书笔记(一)

1.什么是DLL hell?由什么引起的? DLL hell DLL灾难是由COM组件升级引起程序不能运行的情况。COM对象常常编译为dll文件。由于COM对象可以重用,这样多个程序可能使用同一...
  • shadowyelling
  • shadowyelling
  • 2012年04月12日 11:20
  • 710

《.NET框架程序设计(修订版)》--第三章 共享程序集 (1) 转载

学习笔记《.NET框架程序设计(修订版)》--第三章 共享程序集 (1)2004-12-27第二章里讲到对程序集的私有部署方式。这章里探讨创建可以被多个应用程序共同访问的程序集,即全局部署程序集(gl...
  • qq631145382
  • qq631145382
  • 2011年01月01日 23:40
  • 232

.net框架程序设计读书笔记二(Microsoft .net 框架开发平台体系架构)

马云曾调侃说,“人算不如天算,天算不如云计算”。虽说是一句玩笑话,但也确实有一定的道理,自2006年开始,云计算发展至今已有11年,在技术和应用领域方面都取得了巨大的进展,它也逐渐成为了许多企业转型发...
  • benxiaohai529
  • benxiaohai529
  • 2017年12月24日 21:34
  • 50

Microsoft.NET框架程序设计(修订版)-中文版2

  • 2008年12月11日 20:58
  • 5.31MB
  • 下载

Microsoft.NET框架程序设计(修订版)-中文版.part1

  • 2008年12月11日 20:53
  • 14.31MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[《.net框架程序设计》]第十五章 接口
举报原因:
原因补充:

(最多只允许输入30个字)