FILE_ID: 54 // DATE: 2023.01.19 C#多层继承与Virtual关键字 ```csharp using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player : MonoBehaviour { KillerApprentice killer = new KillerApprentice("Carol"); Apprentice[] many = new Apprentice[3]; public void Start() { many[0] = new TohouApprentice("Magic Spark"); many[0].TellName(); killer.TellName(); } } class Apprentice { public string name; public virtual void TellName() { Debug.Log("I am " + name); } } class MagicApprentice : Apprentice { } class KillerApprentice : Apprentice { public KillerApprentice(string name) { this.name = name; } public override void TellName() { Debug.Log("Just call me " + name); } } class TohouApprentice : MagicApprentice { public TohouApprentice(string name) { this.name = name; } public override void TellName() { base.TellName(); Debug.Log("I need some mushrooms"); } } ``` TAGS: C#