首页 > 其他 > 详细

C# Common Keyword

时间:2014-02-04 23:32:11      阅读:448      评论:0      收藏:0      [点我收藏+]

C# Common Keyword

1、abstract

  修饰类名为抽象类,修饰方法为抽象方法。如果一个类为抽象类,则此类只能是其他类的基类。抽象方法在抽象类中没有函数体。抽象类中的抽象方法是没有方法体的,继承其的子类必须实现抽象类的抽象方法。

抽象类有如下特征: 

  • 抽象类不能实例化
  • 抽象类的派生类必须实现所有抽象方法
  • 抽象类中的抽象方法是没有方法体的,继承其的子类必须实现抽象类的抽象方法
抽象方法:
  • 抽象方法是隐式的虚方法
  • 只允许在抽象类中使用抽象方法声明
  • 抽象方法在抽象类中没有方法体
  • 在抽象方法声明中,不能使用static或者virtual修饰符
bubuko.com,布布扣
1 abstract class A //abstract 关键字在class前面
2 {
3     public abstract void run();//方法是将关键字abstract 添加到方法的返回类型的前面
4 }
View Code

2、override

  override关键字提供派生类对基类方法的新的实现,重写的基类方法必须和基类的方法有着相同的签名(函数名、返回值、参数列表相同)。override关键字不可以重写基类非virtual修饰的方法和static修饰的静态方法。派生类的override方法和基类的virtual方法必须有相同的访问权限。不能用修饰符new、static、virtual或者abstract修饰override方法。派生类的override方法重写的基类方法必须是virtual、abstract或者override的。
bubuko.com,布布扣
 1 abstract class A
 2 {
 3 public virtual void MethodA()
 4 {
 5      //do something
 6 }
 7 public abstract void run();
 8 }
 9      public class B:A
10 {
11 public override void MethodA()
12 {
13     //do somthing
14 }
15 public virtual void run()
16 {
17     //do something
18 }
19 }
View Code

3、virtual

  virtual 关键字允许在派生类中重写这些对象。默认情况下,方法是非虚拟的,不可以重写非虚方法,virtual关键字不可以与static、abstract、private、override一起使用。virtual关键字又是和override紧密不可分的,如果要实现virtual方法就必须要使用override或new关键字。

4、sealed

  对一个类应用sealed修饰符时,此修饰符会阻止其他类从该类继承。sealed 方法必须与override连用,即sealed方法的类的父类必须实现了此方法
 sealed关键字有两个作用:
    1 密封类不能被继承。
    2 密封方法重写基类中的方法,但其本身不能在任何派生类中进一步重写
bubuko.com,布布扣
 1 class X
 2 
 3     {
 4         protected virtual void F() { Console.WriteLine("X.F"); }
 5         protected virtual void F2() { Console.WriteLine("X.F2"); }
 6     }
 7     class Y : X
 8     {
 9         sealed protected override void F() { Console.WriteLine("Y.F"); }
10         protected override void F2() { Console.WriteLine("X.F3"); }
11     }
12     class Z : Y
13     {
14         // Attempting to override F causes compiler error CS0239.
15         // protected override void F() { Console.WriteLine("C.F"); }//sealed修饰的方法是不允许继承的
16 
17         // Overriding F2 is allowed.
18         protected override void F2() { Console.WriteLine("Z.F2"); }
19     }
View Code

参考:http://blog.csdn.net/richerg85/article/details/7407544

 
 
 

 

 

 

C# Common Keyword

原文:http://www.cnblogs.com/tekkaman/p/3537877.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!