《讨论类型的转换》PPT课件

上传人:xt****7 文档编号:187119784 上传时间:2023-02-11 格式:PPT 页数:19 大小:348KB
收藏 版权申诉 举报 下载
《讨论类型的转换》PPT课件_第1页
第1页 / 共19页
《讨论类型的转换》PPT课件_第2页
第2页 / 共19页
《讨论类型的转换》PPT课件_第3页
第3页 / 共19页
资源描述:

《《讨论类型的转换》PPT课件》由会员分享,可在线阅读,更多相关《《讨论类型的转换》PPT课件(19页珍藏版)》请在装配图网上搜索。

1、讨论:类型的转换A class Program static void Main(string args)Animal animal1=new Animal();Elephant ele;ele=animal1;ele.Sleep();public class Animal public bool IsSleeping;public void Sleep()Console.WriteLine(Sleeping);public void Eat()public class Elephant:Animal public int CarryCapacity;讨论:类型的转换B class Progr

2、am static void Main(string args)Animal animal1=new Elephant();或/Animal animal1;/Elephant ele=new Elephant();/animal1=ele;public class Animal public bool IsSleeping;public void Sleep()Console.WriteLine(Sleeping);public void Eat()public class Elephant:Animal public int CarryCapacity;第8章接口 Interfaces本章

3、主要内容接口概念实现接口访问接口方法重定义接口的实现显式接口的实现本章学习目标理解接口的含义掌握接口定义与使用接口的概念 接口(interface)也是一种引用类型。成员:方法、属性、索引器、事件特点:只是定义(和抽象类类似),不提供方法的具体实现,本身也不能直接实例化,只能由类或结构体实现。如果某个类或结构体声明要实现某接口的话,即是表明该类或结构体要实现它全部的定义,好像是一种协定(contract)。class Chimpanzee:Animal,ICarnivore 接口的优点优点:抽象类是一系列派生类的基类,接口比基类更加灵活,可以实现多继承,实现多个接口的单个实现。有时可能需要使用

4、接口继承而不是类继承,原因如下:在某些场合中,程序需要许多彼此无关的对象类型来提供特定功能,此时更适合使用接口。接口可以在基类不同的类之间实现多态性若不需要从基类继承实现,则接口是更好的选择 若不能使用类继承,则可以使用接口 接口的优点class Chimpanzee:Animal,ICarnivore,IHerbivore class Dog:Animal,ICarnivore,IHerbivore 设计注意事项 一个设计良好的接口可以包含一个紧密相关的功能集合,这些功能定义了一个特定行为。当一个对象实现了这个接口时,该对象就实现了这个行为。可以为接口开发新的增强实现,而不破坏现有的代码,因

5、此接口的兼容性很强。也可以通过开发新的接口或接口的新实现来增强接口不变性 尽管可以修改接口的实现,但是接口本身在发布后就不能更改了。这一特性称为接口不变性。更改已发布的接口有可能破坏现有代码。若需要增强接口的功能,则必须创建新接口。定义和实现接口 Defining and implementing an Interface访问修饰符 interface 接口名:基列表 接口主体案例背景:描述一个类可以从数据库或其他存储形式(如文件)中进行存储所需要的方法和属性。名称定为IStorable,方法两个:Read()Write()创建一个类型Document,可以存储在数据库中,因此决定实现ISto

6、rable接口。示例程序示例程序SimpleInterface实现多个接口 Implementing More Than One Interface若要实现多接口继承,则需要列出这些接口,这些接口之间用逗号分开,如下所示:class Chimpanzee:Animal,ICarnivore,IHerbivore public class Document:Istoreabled,ICompressible扩展接口 Extending Interface接口继承另一接口,并增加功能。Interface ILoggedCompressible:Icompressible void LoggedSa

7、vedBytes();组合接口 Combining Interface接口继承自多个接口,并增加功能。Interface IStorableCompressable:Istorable,ILoggedCompressible void LoggedSavedBytes();示例程序示例程序ExtendAndCombineInterface通过接口变量本身来访问接口方法 Accessing Interface MethodIstoreabled isDoc=new Istoreabled;具体做法是:先实例化一个实现了接口的对象,然后将其转换为接口类型。Document doc=new Docu

8、ment(“Test Document”);IStorable isDoc=(IStorable)doc;isDoc.Read();思考:如果有另外一个类,比如FileReader也实现了Istorable接口,可以在Read方法实现多态吗?is操作符 The is Operator测试类型是否实现了某一接口。示例程序关系图如下所示:示例程序示例程序IsOperatoras操作符 The as Operator与is操作符的区别在于先测试,如合法则进行转换,转换不合法,as操作符返回null。接口与抽象类的比较当准备为组件提供多态性时,微软的建议将有助于在抽象类和接口之间做出正确的选择。目标选择创建多个组件版本抽象类设计小而简练的功能块接口设计大型功能单元抽象类重定义接口的实现示例程序示例程序overridingInterface本章内容自我小结

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!