Unity/Csharp/クラス/継承元から継承先実行
提供: 初心者エンジニアの簡易メモ
virtual,overrideをつけるとCallDebug()が継承先(Cat)で実行される。
abstract class Animal { public virtual void Call() { CallDebug(); } protected virtual void CallDebug() { Debug.Log("---"); } } class Cat : Animal { public override void Call() { base.Call(); } public override void CallDebug() { Debug.Log("nya"); } }
virtual,overrideを消すとCallDebug()が継承元(Animal)で実行されるので失敗。
abstract class Animal { public virtual void Call() { CallDebug(); } public void CallDebug() { Debug.Log("---"); } } class Cat : Animal { public override void Call() { base.Call(); } public void CallDebug() { Debug.Log("nya"); } }
サンプル実行方法 </pre> Cat cat = new Cat(); cat.Call(); </pre>