繼承在Java和C++中很相似.Java使用extends關(guān)鍵字代替了C++中的":"符號.Java中的任何繼承都是公有繼承;而沒有和C++中的私有和受保護繼承相似的概念.
有人認為super和this引用類似.這種類比是不準確的:super不是一個對對象的引用(比如你不能把值super賦給另一個對象變量),而是指示編譯器調(diào)用超類方法的專用關(guān)鍵字.
Java中使用關(guān)鍵字super調(diào)用超類中方法.在C++中,相應(yīng)的調(diào)用規(guī)則是在超類名字后加上"::"運算符.
this關(guān)鍵字有兩個意思:一是表示對隱式參數(shù)的引用;一是調(diào)用同一類的其他構(gòu)造器.同樣super關(guān)鍵字也有兩個意思:一是調(diào)用超類方法;一是調(diào)用超類構(gòu)造器.當被用來調(diào)用構(gòu)造器時,這兩個關(guān)鍵字十分類似.在一個構(gòu)造器中,對其他構(gòu)造器的調(diào)用只能出現(xiàn)在第一行語句中.構(gòu)造器參數(shù)既可以傳遞給同一個類的其他構(gòu)造器(使用this),也可以傳遞給超類的構(gòu)造器(使用super).
如果之類構(gòu)造器沒有顯示調(diào)用超類構(gòu)造器,那么超類會使用默認(無參數(shù))構(gòu)造器.如果超類沒有默認構(gòu)造器,而且之類構(gòu)造器又沒有調(diào)用其他超類構(gòu)造器,那么Java編譯器會報告錯誤.