virtual和override实现继承关系

官方文档:https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/inheritance

详细信息直接看官方文档,我只记录自己的一点感受。

  1. 子类继承父类时,需要用virtual和override配合。
  2. 子类重载方法中调用父类的该重载源方法,例如:base.method();,如果子类中没有调用,则不会执行父类该源方法的逻辑。

------ 示例 ------

BaseClass.cs

using System;

namespace LearnCSharp
{
class BaseClass
{
public virtual void method()
{
Console.WriteLine("我是Base类!");
}
}
}

ChildClass.cs

using System;

namespace LearnCSharp
{
class ChildClass : BaseClass
{
public override void method()
{
// 调用子类的逻辑
Console.WriteLine("我是Child类!");

// 调用父类的逻辑
base.method();
}


static void Main()
{
ChildClass childClass = new ChildClass();
childClass.method();

Console.ReadKey();
}
}
}

控制台输出
控制台输出

显示边栏