「Unity/Csharp/クラス/継承元から継承先実行」の版間の差分
提供: 初心者エンジニアの簡易メモ
(同じ利用者による、間の2版が非表示) | |||
行25: | 行25: | ||
</pre> | </pre> | ||
− | virtual,overrideを消すとCallDebug()が継承元(Animal) | + | virtual,overrideを消すとCallDebug()が継承元(Animal)で実行されるので失敗。 |
<pre> | <pre> | ||
abstract class Animal | abstract class Animal | ||
行33: | 行33: | ||
CallDebug(); | CallDebug(); | ||
} | } | ||
− | + | public void CallDebug() | |
{ | { | ||
Debug.Log("---"); | Debug.Log("---"); |
2022年8月8日 (月) 15:20時点における最新版
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>