讨论类型的转换Appt课件.ppt

上传人:sccc 文档编号:5449695 上传时间:2023-07-08 格式:PPT 页数:19 大小:644.51KB
返回 下载 相关 举报
讨论类型的转换Appt课件.ppt_第1页
第1页 / 共19页
讨论类型的转换Appt课件.ppt_第2页
第2页 / 共19页
讨论类型的转换Appt课件.ppt_第3页
第3页 / 共19页
讨论类型的转换Appt课件.ppt_第4页
第4页 / 共19页
讨论类型的转换Appt课件.ppt_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《讨论类型的转换Appt课件.ppt》由会员分享,可在线阅读,更多相关《讨论类型的转换Appt课件.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 Pro

2、gram 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章接口 Interfac

3、es,本章主要内容,接口概念实现接口访问接口方法重定义接口的实现显式接口的实现,本章学习目标,理解接口的含义掌握接口定义与使用,接口的概念,接口(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,可以存储在数

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

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

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号