首页 > 学院 > 开发设计 > 正文

c#基础:类与接口的学习

2019-11-10 21:04:57
字体:
来源:转载
供稿:网友

一、抽象类与接口        1、类似处:他们都包含可以由派生类继承的成员。都不能实例化,但可以声明他们的变量。如果这样做,就可以使用多态性把继承这两中类型的对象指定给他们的变量。接着通过这些变量来使用这些类型的成员,但不能直接访问派生对象的其它成员。 

         2、区别:派生类只能继承一个基类,即只能直接继承一个抽象类,但可以通过一个继承链来包含多个抽象类。相反,类可以使用任意多个接口。               按照定义,接口成员是公共的(因为它们倾向于外部使用),但抽象类的成员可以是私有的、受保护的、内部的或受保护的内部成员。               此外,接口不能包含字段、构造函数、静态成员或常量 。

          3、这说明这两种类型用于完全不同的目的。抽象类主要用作对象系列的基类,共享某些主要的特性,例如共同的目的和结构。接口则主要用于类,这些类在基础水平上有所不同,但仍可以完成某些相同的任务。

          举例说明:假如有一个对象系列表现火车,基类Train包含火车的核心定义,比如轮胎和引擎规格。但这个类是抽象的,我们不能开着这样的火车 。所以,我们给它添加一些特性(真实的发动机、好的轮胎),得到了“蒸汽”和“汽油”火车两个派生类 Train_A 和 Train_B 。

           接着,我们来考虑,汽车做好了,我们可以用来做什么?对,搭乘客,装货物,而这两种方法我们可以

放在接口 Interface 中,这样他们就有了共同的任务。

二、结构类型

            1、结构和类非常相似,但结构是值类型的,类是引用类型的,这意味着什么?举例说明:

namespace exmaple_1{     class Myclass    {         publlic  int  val ;     }    struct   myStruct    {          public   int   val;    }    class PRogram   {      static void Main(String[]  args)       {             Myclass   A  =   new  Myclass() ;             Myclass   B  =    A;            A.val=10;            B.val=20;            myStruct  C =  new   myStruct() ;            myStruct  D = C ;            C.val=30;            D.val=40;           Console.WriteLine("A.val={0}", A.val) ;           Console.WriteLine("B.val={0}", B.val) ;           Console.WriteLine("C.val={0}", C.val) ;           Console.WriteLine("D.val={0}", D.val) ;           Console.ReadKey() ;        }  } 运行后,得到的结果是 :        A.val =20,  B.val=20 ,  C.val=30,  D.val=40 。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表