PHP物件導向的高階特性

2021-08-28 03:30:57 字數 2351 閱讀 5942

一、靜態屬性和方法

1、static關鍵字用來宣告靜態屬性和方法,與類有關,而不是某個特定的例項。

2、這類屬性或方法也稱為「類屬性」或「類方法」。

3、靜態屬性和方法只能訪問靜態的屬性和方法,不能訪問類中非靜態的屬性和方法。

4、類外呼叫: 類名::靜態屬性名

5、類內呼叫: self::靜態屬性名

//定義乙個基類

class

book

}//類外

//訪問乙個靜態屬性

echo book:

:$readcount

;//結果為0

//呼叫乙個靜態方法

book:

:read()

;//再次訪問靜態屬性

echo book:

:$readcount

;//結果為1

二、final 類和方法

1、final關鍵字可以防止類的繼承,final類不能有子類,final方法不能被覆寫。

2、final方法不能被重寫

//父類中定義乙個final方法

final

public

function

getprice()

//子類試圖覆寫父類的乙個final方法

public

function

getprice()

//報錯fatal error: cannot override final method book::getprice()

三、常量屬性

1、使用const關鍵字定義常量屬性,定義的這個常量不能被改變。

2、const定義的常量一般大寫,不需要美元符號。

3、呼叫格式: 類名::常量名

//類內定義乙個常量屬性

const

author

='wuhen'

;//類外訪問乙個常量屬性

echo book:

:author

;//結果為wuhen

四、抽象類和方法

1、使用abstract關鍵字來修飾乙個類或者方法,稱為抽象類或者抽象方法

2、抽象類不能直接被例項化

3、抽象類中只定義了子類需要的方法,抽象方法只有方法宣告,沒有方法體

4、抽象方法格式:abstract public function getname()

5、抽象方法必須被重寫

//定義乙個抽象類

abstract

class

car;

}//定義乙個子類繼承抽象類

class

smallcar

extends

car}

//試圖例項化乙個抽象類

//報錯cannot instantiate abstract class car

$car

=new

car(

);

五、介面

1、介面是一種類似於類的結構,可用於宣告實現類所必須宣告的方法,它只包含方法原型,不包含方法體

2、類全部為抽象方法,不需要宣告abstract,這些方法原型必須被宣告為public

3、宣告介面使用inte***ce 關鍵字

4、實現介面使用implements 關鍵字

5、實現介面的類必須實現介面中宣告的所有方法,除非這個類為抽象類

//宣告乙個介面

inte***ce

computer

inte***ce

desk

//宣告乙個類實現多個介面

class

multidesk

implements

computer

,desk

public

function

shutdown()

public

function

area()

}//例項化乙個物件

$multi

=new

multidesk()

;$multi

->

start()

;//輸出 電腦啟動

$multi

->

shutdown()

;//輸出 電腦關機

$multi

->

area()

;//輸出 桌子的面積是2平公尺

PHP物件導向高階特性

1 在 任何處直接使用,不需要在物件中傳遞例項 2 每個例項都可以訪問類中的靜態屬性。不用為了獲取簡單的功能而例項化物件 3 在靜態方法中例項物件進行操作,那麼在不例項化的情況下獲取新的物件 4 靜態變數可以通過類修改,但常量不可改 類的屬性改變會影響它所有的例項 class parents a n...

PHP物件導向特性

1.類的屬性 成員變數 屬性宣告是由關鍵字 public,protected 或者 private 開頭,然後跟乙個普通的變數宣告來組成。其中public在物件中可以直接訪問,其他不可以。屬性宣告 該類子類 public protected private 2.static靜態屬性 宣告類屬性或方法...

物件導向特性 php

1.類的字段呼叫格式 公用字段 類內呼叫 this 欄位名 類外呼叫 物件名 欄位名 靜態 類內呼叫 self 欄位名 類外呼叫 類名 欄位名 常量 類內呼叫 self 欄位名 類外呼叫 類名 欄位名 class computer public function get key public sta...