-2
我終於想出了派生類是如何工作的,......它的工作原理與我原先想象的完全相反。如何切換Class嵌套?
using UnityEngine;
using System.Collections;
public class TestScript : MonoBehaviour {
Class5 A = new Class5();
Class1 B = new Class1();
void Start(){
A.Function5(); // 5
A.Function1(); // 1
B.Function5(); // ERROR `Class1' does not contain a definition for `Function5' and no extension method `Function5' of type `Class1' could be found (are you missing a using directive or an assembly reference?)
B.Function1(); // 1
}
}
public class Class1{
public void Function1(){
Debug.Log("1");
}
}
public class Class2 : Class1{
public void Function2(){
Debug.Log("2");
}
}
public class Class3 : Class2{
public void Function3(){
Debug.Log("3");
}
}
public class Class4 : Class3{
public void Function4(){
Debug.Log("4");
}
}
public class Class5 : Class4{
public void Function5(){
Debug.Log("5");
}
}
Q1我怎麼會在這特定的代碼:
- 不能夠訪問類1,2,3,4
- 但只能訪問Class5並通過它訪問所有其他類中的其他函數。
Q2我怎麼會讓這樣的事情:
public class Class5 : Class4, Class3, Class2, Class1{
public void Function5(){
Debug.Log("5");
}
}
這樣CLASS4不能讀3級,... 但只有5級可以讀取所有其他類?
更喜歡繼承的組合。它使得一個更易於理解的依賴關係圖。也就是說,如果你在.Net中需要多重繼承,那就用接口而不是類型繼承。 – 48klocs
哇什麼是接口? – MilitaryG