官方文档:https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/inheritance
详细信息直接看官方文档,我只记录自己的一点感受。
- 子类继承父类时,需要用virtual和override配合。
- 子类重载方法中调用父类的该重载源方法,例如:
base.method();
,如果子类中没有调用,则不会执行父类该源方法的逻辑。
------ 示例 ------
BaseClass.cs
1 2 3 4 5 6 7 8 9 10 11 12
| using System;
namespace LearnCSharp { class BaseClass { public virtual void method() { Console.WriteLine("我是Base类!"); } } }
|
ChildClass.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| 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(); } } }
|
控制台输出
![控制台输出]()