天天看點

面向對象語言總結

 C++、java、C#、Python、Php等語言均支援OOP,但是有很多規則,他們卻不盡相同,本文重點總結一下幾種語言在OOP中的共性與特性,隻要把這些點區分開,其實幾種語言的代碼你就都可以運用自如。

詳見下表:

C++

Java

C#

Python

PHP

 Lua

強類型(靜态類型)

弱類型(動态類型)

 弱類型(動态類型)

1.支援多繼承

2.持private、protected、public三種繼承方式

1.不支援多繼承

2.隻有一種繼承方式(關鍵字extends)

2.隻有一種繼承方式(無關鍵字,class B : A)

2.隻有一種繼承方式(無關鍵字:class C(B,A))

2.隻支援一種繼承方式(關鍵字extends)

不支援繼承,但可用metatable實作 

1.無接口概念

1.有接口概念

2.支援接口多繼承

 1.無接口概念

支援函數重載

1.不支援函數重載

2.可通過預設參數實作重載

支援子類覆寫父類方法

支援子類覆寫父類方法 

不可封裝屬性

可以封裝屬性

 不可封裝屬性

隐藏成員變量使用:private/protected

變量名稱前加雙下劃線

 變量用local修飾

this->通路成員

this.通路成員

self.通路成員

$this->通路成員

 self.通路成員

構造函數為類名

__init__

__construct

 無此概念

析構函數為~類名

無需自己析構

__del__

__destruct