C#之修饰符-----virtual和override
来源:互联网 发布:阿里云ecs连接ftp 编辑:程序博客网 时间:2024/04/29 23:06
virtual 关键字用于修饰方法、属性、索引器或事件声明,并且允许在派生类中重写这些对象。例如,此方法可被任何继承它的类重写。
public virtual double Area() { return x * y;}
虚拟成员的实现可由派生类中的重写成员更改。有关使用 virtual 关键字的更多信息,请参见使用 Override 和 New 关键字进行版本控制(C# 编程指南) 和了解何时使用 Override 和 New 关键字(C# 编程指南)。
调用虚方法时,将为重写成员检查该对象的运行时类型。将调用大部分派生类中的该重写成员,如果没有派生类重写该成员,则它可能是原始成员。
默认情况下,方法是非虚拟的。不能重写非虚方法。
virtual 修饰符不能与 static、abstract, private 或 override 修饰符一起使用。
除了声明和调用语法不同外,虚拟属性的行为与抽象方法一样。
-
在静态属性上使用 virtual 修饰符是错误的。
-
通过包括使用 override 修饰符的属性声明,可在派生类中重写虚拟继承属性。
要扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现,必须使用 override 修饰符。
在此例中,类 Square 必须提供 Area 的重写实现,因为 Area 是从抽象的 ShapesClass 继承而来的。
abstract class ShapesClass{ abstract public int Area();}class Square : ShapesClass{ int x, y; // Because ShapesClass.Area is abstract, failing to override // the Area method would result in a compilation error. public override int Area() { return x * y; }}
有关 override 关键字用法的更多信息,请参见使用 Override 和 New 关键字进行版本控制以及了解何时使用 Override 和 New 关键字。
override 方法提供从基类继承的成员的新实现。通过 override 声明重写的方法称为重写基方法。重写的基方法必须与 override 方法具有相同的签名。有关继承的信息,请参见继承。
不能重写非虚方法或静态方法。重写的基方法必须是 virtual、abstract 或 override 的。
override 声明不能更改 virtual 方法的可访问性。override 方法和 virtual 方法必须具有相同的访问级别修饰符。
不能使用修饰符 new、static、virtual 或 abstract 来修改 override 方法。
重写属性声明必须指定与继承属性完全相同的访问修饰符、类型和名称,并且被重写的属性必须是 virtual、abstract 或 override 的。
- C#之修饰符-----virtual和override
- C#中virtual,abstract,override修饰符
- C#修饰符stattic、virtual、abstract、override、sealed、extern
- C# virtual和override
- C#里virtual和override
- virtual,override,new ,extern,abstract修饰符
- C#中的一些方法修饰关键字virtual override sealed new
- C#之virtual override new关键字
- C#区分abstract、virtual、override和new
- C# virtual、override和new的使用
- C# new virtual和override 区别
- C# new virtual和override 区别
- virtual, sealed, override, abstract等修饰符作用
- 读书札记:static,virtual,override,abstract四个修饰符区别
- C#中修饰符用法“virtual(虚拟函数)、override(函数复写)、static(静态函数)、abstract(抽象函数)、sealed(密封函数)”
- virtual 修饰符 和 abstract 修饰
- C# virtual, base, override
- Virtual和 Override用法
- 动态修改alv grid的内容的一个问题
- MRTG 配置完整手册
- Vc/MFC中自定义消息及其PostMessage触发使用
- 网站设计之合理架构css
- 地铁派报纸
- C#之修饰符-----virtual和override
- 有问题?MSDN Silverlight技术中文技术论坛上找答案!
- Java EE 6特性
- php5支持imap
- 网站设计之合理架构css
- [转]JAVA泛型学习
- 防止乱码,请将用于页面编码的meta charset放到title的前面
- 学习EXT第五日--Grid组件的简易分页
- delphi与access的parameters.ParamByName提示"insert into''语法错误