首頁 >後端開發 >PHP問題 >php和java物件導向的差別是什麼

php和java物件導向的差別是什麼

青灯夜游
青灯夜游原創
2021-09-17 16:20:422107瀏覽

區別:1、php的class關鍵字不能有除abstract、final之外的修飾符;而Java可以有。 2.php的new關鍵字後面的類別名稱可以是字串類型的變量,java不可以。 3.訪問父物件時,php用parent,而java用super。

php和java物件導向的差別是什麼

本教學操作環境:windows7系統、PHP7.1&&java8版,DELL G3電腦

PHP與Java面向物件的不完全比較

PHP是一門弱型別語言,可以用以過程方式編程,也可以以物件導向方式編程。 Java則是強型別語言,純粹物件導向。這兩門語言在物件導向方面有些相似之處,有了Java的學習經驗學習PHP很容易上手,光是看這些關鍵字(class、extends、interface、implements、final、public、protected、private、static)就有一種很熟悉的感覺。

初略總結了幾個面向的異同,本人不是學術派,只求實用,如有錯誤之處,歡迎指正。

比較1: 類別與介面的宣告、類別繼承、介面實作的宣告

##比較點相同點不同點#類別聲明都是用class關鍵字,可用abstract、final修飾,這兩個修飾符的意思都是一樣php的class關鍵字不能有除abstract、final之外的修飾符,Java的class關鍵字可以有public、proctected、 private修飾符,Java的一個檔案只能有一個public類別介面宣告用interface關鍵字類別繼承介面繼承介面實作類別實例化存取父物件
##同上
用extends關鍵字,單一繼承
#用extends關鍵字
#用implements關鍵字,可以實作多個介面
用new關鍵字,都是回傳物件的引用,物件賦值也是引用賦值 php的new 關鍵字後面的類別名可以是字串類型的變量,java不可以

#php用parent關鍵字,java用super關鍵字
比較2:存取修飾符與存取方法

##比較點相同點不同點#修飾關鍵字都是public、protected、private 無修飾詞行為public: 類別內部外部都可以訪問,protected: 類別內部和子類別內部可以訪問,private:只有類別內部才可以存取php的存取控制的要鬆一點#預設修飾符無php默認是public,java預設是private實例成員和實例方法的存取方法無php必須用$this->,java用this.,也可以省略比較3:類別成員與類別方法

比較點相同點不同點#關鍵字##static該類別的所有實例##訪問方法類別名稱::變數或函數名稱,不需要實例化就能存取#無#比較4:類常數
#無 作用域
#無

比較點

相同點不同點const##java通常用final,php不能用final作用域該類別的所有實例無#存取方法#類別名稱::變數或函式名稱,不需要實例化就能存取無#

比較5:抽象方法與抽象類別

基本上相同,抽象方法和抽象類別都是用abstract 關鍵字修飾,至少有一個抽象方法的類別叫做抽象類,抽象類別不能實例化,如果子類別要能夠實例化,就必須實作父類別的所有抽象方法。

比較6:重寫/覆蓋/重載

子類別方法與父類別方法簽章完全一樣,叫做重寫/覆蓋,此時父類別方法在子類別中是不可見的。 Java由於是強型別語言,有重載機制(相同方法名字,不同簽名,呼叫時依實際參數型別和數量決定呼叫的是哪一個方法)。 PHP是弱型,沒有這種重載,而有動態地建立類別屬性和方法這種重載,是透過魔術方法(__get, __set, __unset, __isset, __callStatic)來實現的。

推薦學習:php培訓

##關鍵字

以上是php和java物件導向的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn