欢迎来到天天文库
浏览记录
ID:59238962
大小:245.00 KB
页数:39页
时间:2020-09-26
《第五讲 面向对象编程的高级应用和异常处理ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、10面向对象技术的高级应用本章讲解面向对象编程中的几种高级技术,主要包括:接口、抽象类和抽象方法,密封类和密封方法。这些内容,相对比较复杂,但对优秀的程序开发人员应该掌握。灵活应用它们,可以开发出结构良好、组织严密,可扩展性好和运行稳定的程序。本章重点讲解以下内容:接口的概念、申明及使用;接口多重继承的实现;掌握显示接口成员的实现方法抽象类和抽象方法的基本概念,申明和使用密封类和密封方法的基本概念,申明和使用10.1接口的概念和申明大家知道,在C#中的类无法实现多重继承,但在实际工作中,出现
2、多重继承的情况又比较多,为此提出了接口的概念,通过接口可以实现多重继承的功能。接口是一种用来定义程序的协议,用于描述可属于任何类的一组相关行为。接口可由方法、属性、事件或索引器或这4种成员的任何组合构成,接口不能包含字段。类可以向继承基类一样从接口继承,且可以继承多个接口。当类继承接口时,只继承成员定义,不继承成员实现。若要实现接口成员,类中的对应成员必须是公共的、非静态的,并与接口成员有相同的名称和签名。10面向对象技术的高级应用接口可以继承其它接口,类可以通过其继承的基类或接口多次继承某个接口。在
3、这种情况下,若将该接口申明为新类的一部分,则类只实现该接口一次。若没有将继承的接口申明为新类的一部分,其实现将由申明它的基类提供,基类可以使用虚拟成员实现接口成员。接口具有以下特征:接口类似于抽象基类,继承接口的任何非抽象类型,都必须实现接口的所有成员。不能直接实例化接口。接口不包含方法的实现。类可以从多个接口继承。10面向对象技术的高级应用接口自身可以从多个接口继承。在C#中申明接口的语法如下:修饰符interface接口名称:继承的接口列表{接口内容}修饰符包括:new、public、p
4、rotected、internal和private。举例:申明包含编号和姓名两个属性,一个自定义方法的接口,方法用来显示编号和姓名。10面向对象技术的高级应用InterfaceImyInterface{stringID{get;set;}stringName{get;10面向对象技术的高级应用set;}voidShowInfo();}10.2接口的实现和继承接口通过类继承来实现。一个类只可以继承一个基类,但可以继承任意多个接口,申明实现接口的类时,需要在基类列表中包含所继承接口的名称。举例:10面向对
5、象技术的高级应用classProgram:ImyInterface{stringid=“”;stringname=“”;publicstringID{get{returnid;}set{id=value;}}publicstringName10面向对象技术的高级应用{get{returnname;}set{name=value;}}publicvoidShowInfo(){messagebox(“编号为:”+ID);messagebox(“姓名为:”+Name);}10面向对象技术的高级应用//操控类
6、,并在类中实现接口Programprogram=newProgram();Imyinterfaceimyinterface=program;imyinterface.ID=“No.1”;imyinterface.Name=“李丽”;imyinterface.ShowInfo();上面的举例,只继承了一个接口,接口可以多重继承,在进行多重接口继承时,被继承的接口之间需要使用“,”。10面向对象技术的高级应用举例:申明3个接口IPeople、IStudent、Iteacher,定义一个类继承这三个接口,并
7、实现这些接口中的属性和方法。interfaceIPeople{stringName{get;set;}10面向对象技术的高级应用stringSex{get;set;}}interfaceITeacher:IPeople//继承公共接口{voidteach();}10面向对象技术的高级应用interfaceIStudent:IPeople{voidstudy();}//定义类,继承这三个接口,并实现接口中的属性和方法classLeetest:IPeople,ITeacher,IStudent{strin
8、gname=“”;stringsex=“”;publicstringName10面向对象技术的高级应用{get{returnname;}set{name=value;}}publicstringSex{get{returnsex;}set(sex=value;}}10面向对象技术的高级应用publicvoidteach(){messagebox.show(Name+””+Sex+”是从事计算机语言教学的老师。”);}publicvoidstudy(){m
此文档下载收益归作者所有