现在的位置: 首页 > 综合 > 正文

温习static,sealed,abstract,virtual

2013年01月17日 ⁄ 综合 ⁄ 共 521字 ⁄ 字号 评论关闭

温习static,sealed,abstract,virtual对比:

  static sealed abstract virtual
修饰类可否 y(c#2.0以后) y y -
修饰类可否
实例化
x y x -
修饰类可否
派生
有实例成员
x x y -
修饰类可否
有static成员
y y y -
修饰类可否
有virtual成员
x x y -
修饰类可否
有abstract成员
x x y -
修饰成员可否 y x y y
用途 不变和常用的工具类工具方法 很具体清晰不需要再被继承细化的类,或需要上下文参数的工具类 较抽象的基类,强制实现其抽象方法 可以再被进一步扩展的虚方法,但非强制

 

 

1、虚方法与抽象方法:虚方法有方法体实现代码,抽象方法只有声明;

2、虚方法与普通方法:虚方法可以在子类中override,普通方法不行;

3、重写虚方法和抽象方法用override;覆盖重写普通方法只能用new,仍可以在用base.方法名调用其父类被覆盖的方法;

4、调用基类方法用base.xxx,调用自身方法用this.xxx;

5、私有构造函数可阻止类被实例化;(在单例模式中使用??)

6、静态构造函数,在第一个实例或引用任何第一个静态成员之前,将被自动调用;

7、可以同时存在一个普通无参构造函数和一个静态无参构造函数。

 

 

 

 

 

抱歉!评论已关闭.