A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© -淡然一笑 中级黑马   /  2014-2-10 12:35  /  1657 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

解释virtual、sealed、override和abstract的区别

评分

参与人数 1技术分 +1 收起 理由
电脑大牛 + 1

查看全部评分

2 个回复

倒序浏览
标记为virtual的方法可以被子类重写
override表示子类重写了父类的方法
new关键字用在子类成员前表示屏蔽(隐藏)了对应的父类成员(包括方法、字段、属性)
sealed修饰的类只能被用作独立的类,不能被用作基类,不能被其他类继承
abstract修饰抽象成员和抽象类。抽象成员指等待子类覆写的函数成员。抽象类指设计为等待被继承的类。

评分

参与人数 1技术分 +1 收起 理由
电脑大牛 + 1

查看全部评分

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