[脚本] C#虚函数在UNITY3D里的应用

using UnityEngine;
using System.Collections;
using System;
public class A {
   public virtual void Func() // 注意virtual,表明这是一个虚拟函数
        {




   Debug.Log("Func1 In A");
        }


}
public class B : A  // 注意B是从A类继承,所以A是父类,B是子类
{
    public override void Func() // 注意override ,表明重新实现了虚函数
    {
        Debug.Log("Func2 In B");
    }
}
public class C : B // 注意C是从A类继承,所以B是父类,C是子类
{


}
public   class D : A // 注意D是从A类继承,所以A是父类,D是子类
{
    public new void Func() // 注意new ,表明覆盖父类里的同名类,而不是重新实现
    {
        Debug.Log("Func3 In B");
    }
}


using UnityEngine;
using System.Collections;public class Program : MonoBehaviour {
    private A a;
    private A b;
    private A c;
    private A d;
    // Use this for initialization
    void Start () {
            a = new A(); // 实例化a对象,A是a的实例类
                b = new B(); // 实例化b对象,B是b的实例类
                c = new C(); // 实例化b对象,C是b的实例类
                d = new D(); // 实例化b对象,D是b的实例类
           a.Func();
       b.Func();
       c.Func();
       d.Func();
    }
    
    // Update is called once per frame
    void Update () {
    
    }
}

你可能感兴趣的:(脚本,unity3d)