「Unity/Csharp/クラス/継承元から継承先実行」の版間の差分

提供: 初心者エンジニアの簡易メモ
ナビゲーションに移動 検索に移動
編集の要約なし
編集の要約なし
49行目: 49行目:
     }
     }
}
}
</pre>
サンプル実行方法
</pre>
Cat cat = new Cat();
cat.Call();
</pre>
</pre>

2022年8月8日 (月) 06:13時点における版

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();
    }
    protected void CallDebug()
    {
        Debug.Log("---");
    }
}
class Cat : Animal
{
    public override void Call()
    {
        base.Call();
    }
    public void CallDebug()
    {
        Debug.Log("nya");
    }
}

サンプル実行方法

Cat cat = new Cat(); cat.Call();