C#学习日记-接口于类

来源:互联网 发布:上海人工智能公司排名 编辑:程序博客网 时间:2024/06/08 13:13

记录一下今天学习的C#中的一些要点:

       C#与C++等语言最大的区别莫过于C#中的接口。接口类似与类,但也有区别,如下:

1、接口类似于类,但接口的成员都没有执行方式,它只是方法、属性、事件和索引的组合而已,并且也只能包含这四种成员;类除了这四种成员之外还可以有别的成员(如字段)。
2、不能实例化一个接口,接口只包括成员的签名;而类可以实例化(abstract类除外)。
3、接口没有构造函数,类有构造函数。
4、接口不能进行运算符的重载,类可以进行运算符重载。
5、接口的成员没有任何修饰符,其成员总是公共的,而类的成员则可以有修饰符(如:虚拟或者静态)。
6、派生于接口的类必须实现接口中所有成员的执行方式,而从类派生则不然。

一、属性

    C#中提供了属性成员,通过设置一个属性成员可以对对象或类进行某些特性的设置或查询。

设置属性用的代码快为set ,查询为get.示例如下:

public class Date{        private int Day =7;        public: int  day       //设置属性信息,为int类型        {             get {return  Day;}             set                 {                        if((value>0)&&(value<8))            //value为一个隐式参数,参数类型是属性的类型{     Day=value;}}}}}

二、静态函数不对特定实例进行操作,在静态方法中引用this会导致编译错误。

三、结构

结构具有以下特点:

1. 结构是值的类型

2. 向方法传递结构时,结构是通过传值方式传递的,而不是作为引用传递的。

3.结构的实例化可以不使用new运算符。

4. 结构可以声明构造函数,但他们必须带参数。

5. 一个结构不能从另一个结构或类继承。所有结构都直接继承自System.ValueType,后者继承自System.Object。

6. 结构可以实现接口。

7.在结构中初始化实例字段是错误的。

四、类

proteced 的可访问性是只有子类(派生类)才能访问proteced成员,基类和外部代码都不能访问proteced成员。

override 类型表示重写。重写方法只能用于重写基类中的虚函数。不能与new 、static、或者virtual同时使用。

virtual 修饰符不能与private、static、abstract或者override修饰符同时使用。

五、抽象类

     抽象类的定义形式为:

访问修饰符  abstract class  类名:基类或接口

{


}

抽象类的实现需要继承抽象类的子类的对象来实现。

抽象类与非抽象类的区别如下:

1.抽象类不能直接实例化。

2.抽象类中可以包含抽象成员,但非抽象类不可以。

3.抽象类不能被密封。


        抽象类与接口的区别主要如下:

1. 他们的派生类只能继承一个基类,即只能直接继承一个抽象类,但可以继承任意多个接口。

2.抽象类中可以定义成员的实现,但接口中不可以。

3. 抽象类中可以包含字段、构造函数、析构函数、静态成员或常量等,接口中不可以。

4。抽象类中的成员可以是私有的(只要他们不是抽象类的)、受保护的、内部的或受保护的内部成员(受保护的内部成员只能在应用程序的代码或派生类中访问),但接口中的成员必须是公共的。

-----------------------------------------------------------------end------------------------------------------------------------------------


0 0
原创粉丝点击