日期:2014-05-18  浏览次数:20876 次

C#基础知识整理:C#类和结构(3)

1、静态类和静态成员有哪些功能特性? 实现代码?
    静态类和静态成员是指使用static关键字定义的类或成员,凡是static类的成员一定是static成员,不然会报错的。静态类和成员的一大特点就是它们是独一无二的。如果是static类,那么它是不能实例化的,而且加载在内存中只有一个;如果是static变量,方法,这个类可以被实例化的话,无论实例化多少次,static变量或方法始终只有一个。
如下:
(1)、静态成员

    结果:
  

静态成员特点:
a、必须通过类名引用,不能用类的对象来引用;
b、无论类被实例化多少次,在内存中只有同一块区域;
c、静态方法中如果引用方法外的变量或方法,它们也必须是静态的,如

(2)、静态类

 结果:
 
 静态类特点:
 a、成员必须也是静态的;
 b、不能别实例化,引用内部成员直接用类名;
 c、是密封类;(注:密封类是指这个类不能用作基类,不能是抽象类,也就是不能派生。)
 d、不能包含构造函数。
静态类和成员使用场合,静态类不能泛滥使用,因为它一旦加载了,就在内存中有一块区域,不论你用或不用,它都在那里。占用了内存。如下场合可以使用:
a、全局的变量,整个工程中都用到的一个变量,而且值不轻易改变,即使改变所有模块都必须要做出反应。
b、不操作实例数据,不与代码中特定类关联的方法,比如Math类中的一些方法。
2、密封类功能特性? 实现代码? 为什么要使用密封类?
    密封类是指用sealed关键字修饰的一种类,它的目的是防止派生,也就是这种类不能被继承。
特点:
不能用作基类,不能抽象,密封类的调用比较快。

3、什么是抽象类? 功能特性? 实现代码? 接口与抽象类的区别?
    抽象类是指用abstract关键字修饰的类。作用是派生多个类,共享基类的公用方法和属性。

结果:


抽象类和接口的区别:
      a、类是对对象的抽象,可以把抽象类理解为把类当作对象,抽象成的类叫做抽象类。而接口只是一个行为的规范或规定,微软的自定义接口总是后带able字段,证明其是表述一类类“我能做...”.抽象类更多的是定义在一系列紧密相关的类间,而接口大多数是关系疏松但都实现某一功能的类中;
      b、接口基本上不具备继承的任何具