万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    子クラスの親クラスのStartとUpdate実験 Unity

    ふと気になり、
    ChildクラスをMainCameraへアタッチし、Parentクラスが呼ばれるか実験

    • 親クラス
    using UnityEngine;
    using System.Collections;
    
    public class Parent : MonoBehaviour {
    	void Start () {
    		Debug.Log("ParentStart");
    	}
    	
    	void Update () {
    		Debug.Log("ParentUpdate");
    	}
    }
    
    • 子クラス
    using UnityEngine;
    using System.Collections;
    
    public class Child : Parent {
    
    	void Start () {
    		Debug.Log("ChildStart");
    	}
    	
    	void Update () {
    		Debug.Log("ChildUpdate");
    	}
    }
    
    • 結果
    ChildStart
    ChildUpdate
    ChildUpdate
    ChildUpdate
    ChildUpdate
    .
    .
    .
    • 結論

    親は無視!!!


    子クラスから親を呼んだり、親クラスが自身のvirtualメソッドを呼んだら自動的に子クラスのoverrideメソッドを呼ぶか実験
    アタッチしたのは子クラス

    • 子クラス
    using UnityEngine;
    using System.Collections;
    
    public class Child : Parent {
    
    	void Update () {
    		HelloParent();
    	}
    	
    	public override void Hoge() {
    		Debug.Log("ChildHoge");
    	}
    }
    
    • 親クラス
    using UnityEngine;
    using System.Collections;
    
    public class Parent : MonoBehaviour {
    	public virtual void Hoge() {
    		Debug.Log("ParentHoge");
    	}
    
    	public void HelloParent() {
    		Debug.Log("Called From Child");
    		Hoge();
    	}
    }
    
    • 結果はこうなった
    Called From Child // 子クラスから呼ばれた親クラス
    ChildHoge    // 子クラスのHogeメソッド
    Called From Child
    ChildHoge
    Called From Child
    ChildHoge
    .
    .
    • 結論

    virtualのメソッドは何を書いても意味が無い
    親クラスが自身で持っているメソッドを呼ぼうとしたら、子クラスのoverrideのメソッドが呼ばれる