找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2287|回復: 0
打印 上一主題 下一主題
收起左側

java語言對于多態(tài)的理解

[復制鏈接]
跳轉到指定樓層
樓主
ID:91350 發(fā)表于 2015-10-1 13:20 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
         人家說面向對象語言如java主要就三大件:封裝,繼承,多態(tài)。java語言對于多態(tài)的理解,確實感覺有些難度。如何用自己的語言來描述并理解“多態(tài)”這個概念呢?聽了3個牛人(郝斌,馬士兵,千鋒)的講解,還是覺得千鋒的講解最容易理解,他的學習方法也值得推廣。

        理解“多態(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對象的方法


    }

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




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表