黑马程序员技术交流社区

标题: virtual、sealed、override和abstract的区别 [打印本页]

作者: -淡然一笑    时间: 2014-2-10 12:35
标题: virtual、sealed、override和abstract的区别
解释virtual、sealed、override和abstract的区别
作者: 潘金锋    时间: 2014-2-10 19:42
标记为virtual的方法可以被子类重写
override表示子类重写了父类的方法
new关键字用在子类成员前表示屏蔽(隐藏)了对应的父类成员(包括方法、字段、属性)
sealed修饰的类只能被用作独立的类,不能被用作基类,不能被其他类继承
abstract修饰抽象成员和抽象类。抽象成员指等待子类覆写的函数成员。抽象类指设计为等待被继承的类。

作者: 许庭洲    时间: 2014-2-10 19:43
1. 当类中的方法申明前加上virtual修饰符,称之为虚方法,反之为非虚。使用了virtual修饰符后,不允许再有static,abstract,或override修饰符。
2. 密封类在声明中使用sealed修饰符,这样就可以防止该类被其它类继承。如果试图将一个密封类作为其它类的基类,C#将提示出错。理所当然,密封类不能同时又是抽象类,因为抽象总是希望被继承的。
3.在派生类中声明对虚方法的重载,要求在声明中加上override关键字,而不能有new,static或virtual修饰符。
4.抽象类使用abstract修饰符,抽象类只能作为其它类的基类,它不能直接被实例化,而且对抽象类不能使用new操作符。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2