您的位置: 日喀则信息网 > 星座

针对 Java 开发人员的 C# 编程语言(19)

发布时间:2019-09-13 20:42:27

方法重写通过为声明的方法提供新的实现,派生类可以重写基类的方法。Java 和 C# 之间的一个重要区别在于,Java 方法在默认情况下标记为虚方法,而在 C# 中,必须使用 virtual 修饰符才能将方法显式标记为虚方法。可以采用大致相同的方式重写属性访问器以及方法。

虚方法派生类中要被重写的方法是用 virtual 修饰符声明的。而在派生类中,已被重写的方法用 override 修饰符声明。

override 修饰符表示派生类的方法或属性,这个派生类代替基类中具有相同的名称和签名的类。要被重写的基方法必须声明为 virtual、abstract 或 override:以这种方式重写非虚方法或静态方法是不可能的 — 请参见关于此问题的下一部分。已被重写的方法或属性和重写方法或属性必须具有相同的访问级修饰符。

下面的示例显示了一个称为 StepUp 的虚方法,它是在派生类中用 override 修饰符重写的:

using System;public class CountClass{ public int count; // Constructor public CountClass(int startValue) { count = startValue; } public virtual int StepUp() { return ++count; }}class Count100Class : CountClass{ // Constructor public Count100Class(int x) : base(x) { } public override int StepUp() { return ((base.count) + 100); } public static void Main() { CountClass counter = new CountClass(10); CountClass bigCounter = new Count100Class(10); Console.WriteLine("Value of count in base class = {0}", counter.StepUp()); Console.WriteLine("Value of count in derived class = {0}", bigCounter.StepUp()); }}

当我们运行这段代码时,会发现派生类的构造函数使用基类中给出的方法体,这使得我们在不复制该代码的情况下就可以初始化 count 成员。下面是我们得到的输出结果:

Value of count in base class = 11Value of count in derived class = 110

查看本文来源

丁桂薏芽健脾吃多久
热淋清颗粒成分
晚上尿急怎么治疗
冠心病什么不能吃
猜你会喜欢的
猜你会喜欢的