C#中抽象类与接口的分析与比较

C#中抽象类与接口的分析与比较

ID:41560168

大小:58.72 KB

页数:8页

时间:2019-08-27

C#中抽象类与接口的分析与比较_第1页
C#中抽象类与接口的分析与比较_第2页
C#中抽象类与接口的分析与比较_第3页
C#中抽象类与接口的分析与比较_第4页
C#中抽象类与接口的分析与比较_第5页
资源描述:

《C#中抽象类与接口的分析与比较》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、C#中抽象类与接口的分析与比较【摘要】抽象类和接口是C#语言中两个重要的对象引用类型,是C#程序设计使用多态性的基础,但也是初学者容易搞混淆的两种类型,本文主耍介绍了两者的概念、特点和典型应用实例,并对两者进行比较。【关键词】抽象类;接口;分析;区别抽象类和接口是C#语言中两个重要的对象引用类型,是C#程序设计使用多态性的基础,但也是初学者容易搞混淆的两种类型,本文主要介绍了两者的概念、特点和典型应用实例,并对两者进行比较。通过本文的介绍能使得初学者掌握抽象类和接口概念、特点和使用场合。一、抽象类在类声明小使用abstract修饰符的类称为抽象类。含有-•个或一个以上的抽象成员的类

2、,必须定义为抽象类。当方法声明包含abstract修饰符时,称该方法为抽象方法,虽然抽象方法同时隐含为虚拟方法,但是它不能有virtual修饰符。声明中包含abstract修饰的属性称为抽象属性。抽象方法或属性没有方法体或属性访问器。抽象类只能是其他类的基类,抽象类不能实例化,必须在继承中实现。抽彖类屮可以包含非抽彖成员。抽彖类的口的是提供一个合适的基类,以派生其他的类。使用抽象类的好处之一是,当要求组建新版本时,可根据需要将附加方法添加到基类。如下例:抽象类应用实例:abstractclassanimal{publicabstractvoidFoodHabits();}class

3、Carnivorous:animalpublicoverridevoidFoodHabits(){Console.WriteLine(“食肉动物只吃肉!");}}classHerbivorous:animal{publicoverridevoidFoodHabits(){Console.WriteLine(“食草动物只吃素!”);}classProgramstaticvoidMain(string[]args){Carnivorousal=newCarnivorous();Herbivorousa2=newHerbivorous();al.FoodHabits();a2.FoodH

4、abits();Console.ReadLine();}从上血的例了可以看出在程序中声明了一个抽象类animal,在该类中声明了一个抽彖方法FoodHabits(),该方法没有形参,无返回值。Carnivorous和Herbivorous是animal的派生类,在这网个派生类中必须重写FoodHabits()方法,否则会发生编译错误,重写方法的关键字是overrideo在主函数屮不可以创建基类animal的实例,但可以将实现抽象类的对象赋给抽象类的对象。二、接口在C#屮类只能实现“单一继承”,要实现多重继承,必须使用接口。一个接口定义一个协定,实现接口的类或结构必须遵守其协定。接口

5、可以从多个基接口继承,而类或结构可以实现多个接口中。接口市明可以市明零个或多个成员,接口的成员必须是方法、屈性、事件或索引器。接口不以包含常数、字段、运算符、实例构造函数、析构函数或类型,也不能包含任何种类的静态成员。接口本身不提供它所定义的成员的实现,接口只指定实现该接口的类或接口必须提供的成员。所有接口成员都隐式地具冇public访问权限。类可以从单个类继承但可以实现多个接I」,实现接口的类需要实现接口的所有成员。接口可以从现有接口中继承,一个实现接口的类也实现它的继承接口的基类接口。虽然不能创建接口对象,但可以声明接口变量,接口变量必须指向-•个实现了接口的类的对象。如卜例中

6、的TypeUse[Jt=newTypeUse[4];芦明了一个接I—I类型的数组,它包含4个接口类型的变量。以下语句声明了类的对彖,并实例化,接口变量(接口数组元素)指向类的对彖。Teacherteal=newTeacher("李静",30,"语文");Studentstul=newStudent("陈丽",16);Teachertea2=newTeacher(64吴江",36,"数学");Studentstu2=newStudent("王强”,15);t[0]=tea1;t[l]=stul;t[2]=tea2;t[3]=stu2;以上语句说明不同类型的对象被分配给一个接口引用。以

7、下程序中应用程序通过接口引用数组调用Showinfo方法,并返回结果,在Showinfo方法屮引用Type属性和调用TellAboutSelf方法,不同对象及其属性、方法关联在一起,因此,在引用Type属性和调用TellAboutSelf方法吋,不必考虑是哪一个对象,这也是多态行为的典型示例。staticstringShowinfo(TypeUse[]t){stringoutput=for(inti=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。