標(biāo)題: java語言對于多態(tài)的理解 [打印本頁]

作者: piaolin    時間: 2015-10-1 13:20
標(biāo)題: java語言對于多態(tài)的理解
         人家說面向?qū)ο笳Z言如java主要就三大件:封裝,繼承,多態(tài)。java語言對于多態(tài)的理解,確實感覺有些難度。如何用自己的語言來描述并理解“多態(tài)”這個概念呢?聽了3個牛人(郝斌,馬士兵,千鋒)的講解,還是覺得千鋒的講解最容易理解,他的學(xué)習(xí)方法也值得推廣。

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


    }

}
   實在理解不了,就背下來。這就是千鋒等牛人共同推薦的學(xué)習(xí)方法。









歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1