码迷,mamicode.com
首页 > Windows程序 > 详细

c#中的 virtual override 和abstract 以及sealed

时间:2015-03-16 12:27:18      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

1、如果父类方法没有加virtual关键字,即不是一个虚方法,则在子类中只能隐藏基类方法,而不能覆盖。

2、如果父类方法加了virtual关键字,即它是一个虚方法,在子类中一样可以隐藏。

3、如果子类实现了父类相同的方法(相同的方法名称及签名),而没有new,在编译时会报警,但编译仍然能够通过!

4、调用父类方法:base.方法名() 

5、abstract类是一个抽象类,不能被实例化

 

new 和override的区别

1.override重写虚方法,那么就只剩下重写以后的方法; 
2.new隐藏基类的方法,那么基类的方法和当前类的方法同时存在只是被隐藏了。new声明的方法,当使用子类的类型来调用的时候,它会运行子类中的函数,而如果类型是基类的话,被隐藏的基类函数就会站到前台来

3.在子类中new父类中的方法,父类中的方法不一定是虚类型,即virtual。但是在子类中override父类中的方法,父类的方法一定得是虚类型

 

sealed密封类有点类似JAVA,php中的final关键字  被sealed修饰的类不能作为父类被继承

c#中的 virtual override 和abstract 以及sealed

标签:

原文地址:http://www.cnblogs.com/zhepama/p/4341254.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!