理解“多態(tài) ”之前,先記住兩條語法:1,一個引用能夠調用哪些成員(變量,函數(shù))取決于這個引用本身的類型。對于這句話我的理解:a),多態(tài)的前提必須是兩個對象之間存在繼承關系,只有確保對象之間是繼承關系,才能保證不會出現(xiàn)“人是狗,狗是人”的混亂關系。所謂引用就是指針,如,p.name = "zhangsan"; p就是指向某個對象的指針。如,p和s都是指向某個對象的指針,如果:p=s; 則根據(jù)本條語法的理解,p所能夠調用的成員就是p本身有的那些成員。如何理解“能夠調用的成員”呢?“調用”對于變量而言就是賦值,如p.; 這就是賦值;如果調用的是方法,那就是執(zhí)行一個函數(shù),如,p.study(..);這就表示調用函數(shù)。2,一個引用調用的是哪個方法,取決于這個引用所指向的哪個對象。因為在多態(tài)中一定存在方法的重寫,引用調用的到底是哪個方法?有時容易混亂,如,p和s都是指向某個對象的指針,p=s; 如,p.study(..);這就表示study(..)函數(shù)是s所指向的對象的方法。例:
class Test{
public static void main(string args[])
{ Student s = new student();
Person p = s; //向上轉型upcasting
p.;
p.age=20;
p.introduce();//introduce()指向的是student對象的方法