「Unity/Csharp/クラス/継承元から継承先実行」の版間の差分
提供: 初心者エンジニアの簡易メモ
(ページの作成:「virtual,overrideをつけるとCallDebug()が継承先(Cat)で実行される。 <pre> abstract class Animal { public virtual void Call() { CallDebug();...」) |
|||
(同じ利用者による、間の4版が非表示) | |||
行23: | 行23: | ||
} | } | ||
} | } | ||
− | <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("---"); | ||
行49: | 行49: | ||
} | } | ||
} | } | ||
− | <pre> | + | </pre> |
+ | |||
+ | サンプル実行方法 | ||
+ | </pre> | ||
+ | Cat cat = new Cat(); | ||
+ | cat.Call(); | ||
+ | </pre> |
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>