您好,登錄后才能下訂單哦!
C++、java、C#、Python、Php等語(yǔ)言均支持OOP,但是有很多規(guī)則,他們卻不盡相同,本文重點(diǎn)總結(jié)一下幾種語(yǔ)言在OOP中的共性與特性,只要把這些點(diǎn)區(qū)分開,其實(shí)幾種語(yǔ)言的代碼你就都可以運(yùn)用自如。
詳見下表:
C++ | Java | C# | Python | PHP | Lua |
強(qiáng)類型(靜態(tài)類型) | 強(qiáng)類型(靜態(tài)類型) | 強(qiáng)類型(靜態(tài)類型) | 弱類型(動(dòng)態(tài)類型) | 弱類型(動(dòng)態(tài)類型) | 弱類型(動(dòng)態(tài)類型) |
1.支持多繼承 | 1.不支持多繼承 | 1.不支持多繼承 | 1.支持多繼承 2.只有一種繼承方式(無(wú)關(guān)鍵字:class C(B,A)) | 1.支持多繼承 2.只支持一種繼承方式(關(guān)鍵字extends) | 不支持繼承,但可用metatable實(shí)現(xiàn) |
1.無(wú)接口概念 | 1.有接口概念 2.支持接口多繼承 | 1.有接口概念 2.支持接口多繼承 | 1.無(wú)接口概念 | 1.有接口概念 2.支持接口多繼承 | 1.無(wú)接口概念 |
支持函數(shù)重載 | 支持函數(shù)重載 | 支持函數(shù)重載 | 1.不支持函數(shù)重載 2.可通過(guò)默認(rèn)參數(shù)實(shí)現(xiàn)重載 | 1.不支持函數(shù)重載 2.可通過(guò)默認(rèn)參數(shù)實(shí)現(xiàn)重載 | 1.不支持函數(shù)重載 2.可通過(guò)默認(rèn)參數(shù)實(shí)現(xiàn)重載 |
支持子類覆蓋父類方法 | 支持子類覆蓋父類方法 | 支持子類覆蓋父類方法 | 支持子類覆蓋父類方法 | 支持子類覆蓋父類方法 | 支持子類覆蓋父類方法 |
不可封裝屬性 | 不可封裝屬性 | 可以封裝屬性 | 可以封裝屬性 | 不可封裝屬性 | 不可封裝屬性 |
隱藏成員變量使用:private/protected | 隱藏成員變量使用:private/protected | 隱藏成員變量使用:private/protected | 變量名稱前加雙下劃線 | 隱藏成員變量使用:private/protected | 變量用local修飾 |
this->訪問(wèn)成員 | this.訪問(wèn)成員 | this.訪問(wèn)成員 | self.訪問(wèn)成員 | $this->訪問(wèn)成員 | self.訪問(wèn)成員 |
構(gòu)造函數(shù)為類名 | 構(gòu)造函數(shù)為類名 | 構(gòu)造函數(shù)為類名 | __init__ | __construct | 無(wú)此概念 |
析構(gòu)函數(shù)為~類名 | 無(wú)需自己析構(gòu) | 無(wú)需自己析構(gòu) | __del__ | __destruct | 無(wú)此概念 |
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。