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 () {
}
}
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 () {
}
}