C#中的关键字

我们来总结一下C#中一些常用关键字的应用:

首先通过下面这张图理解一下Public,Internal,Protected,Private。

 

public 和internal 修饰类。

public,protected,private 修饰方法。

 

Abstract:

      代表的是抽象,abstract 可以修饰类和方法。

      修饰类的时候,这个类称为抽象类,表示所修饰的类是不完整的,并且它只能用作基类。

抽象类有以下特点:

      抽象类不能直接实例化,并且对抽象类使用 new运算符会导致编译时错误。虽然一

些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为 null,或者

含有对非抽象类的实例的引用(此非抽象类是从抽象类型派生的)。

      抽象类不能被密封。

      从抽象类派生非抽象类(主要用途),必须具体实现所继承的所有抽象成员,从

而重写那些抽象成员。

修饰方法的时候,称为抽象方法。只能用在抽象类中修饰方法,并且没有具体的实现。

       抽象方法的实现必须在派生类中使用override关键字来实现。

       因为抽象方法声明不提供实际的实现,所以没有方法体;方法声明只是以一个分号

结束,并且在签名后没有大括号 ({ })。 例如:

public abstract void MyMethod();

      在抽象方法声明中使用 static 或 virtual 修饰符是错误的,因为抽象方法需要被重

写,所以不能用static修饰,因为抽象方法是隐式的虚方法,所以不能用virtual修饰。 

      在静态属性上使用 abstract 修饰符是错误的。

      在派生类中,通过包括使用 override 修饰符的属性声明,可以重写抽象的继承属性。

virtual

代表虚拟的,虚的,修饰的是方法。

 

virtual 关键字用于在基类中修饰方法。virtual的使用会有两种情况:

 

情况1:在基类中定义了virtual方法,但在派生类中没有重写该虚方法。那么在对派生类

实例的调用中,该虚方法使用的是基类定义的方法。

 

情况2:在基类中定义了virtual方法,然后在派生类中使用override重写该方法。那么在

对派生类实例的调用中,该虚方法使用的是派生重写的方法。

override

代表重写,修饰的是方法。

override 方法提供从基类继承的成员的新实现。 由 override 声明重写的方法称为重写

基方法。 重写的基方法必须与 override 方法具有相同的名称。

修饰方法的时候:

     1:不能重写非虚方法或静态方法。重写的基方法必须是 virtual、abstract 或

override 的。

     2:override 方法和 virtual 方法必须具有相同的访问级别修饰符。

     3:您不能使用 new、static 或 virtual 修饰符来修改 override 方法。

     4:重写属性声明必须指定与继承属性完全相同的访问修饰符、类型和名称,并且被

重写的属性必须是 virtual、abstract 或 override 的。

New

代表隐藏,修饰的是方法。

new 和override 的区别是:new 是隐藏父类方法,这就好比告诉别人,这个方法和父类

的方法是两个不同的方法,只是他们的签名刚好相同罢了,override 则不同,override

告诉别人,以后用我的instance调用的就是我的方法,用父类的instance调用的就是父类

的方法。

总结下:abstract,virtual,override,new 的关系。

override 的方法必须是abstract ,virtual, override 的。

abstract 的方法是隐式的virtual 方法。

virtual 的方法代表这个方法可以被重写,当然你也可以不重写它。

abstract的方法代表这个方法是必须被重写的方法。

new 的方法代表这个方法和父类的没关系,是一个新的“new” 方法,只是刚好签名相

同罢了。

         以上的总结只是加深一下对C#中关键字的理解,大部分都是借鉴别人的,学完设计模式以后会用代码来加深对他们的理解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值