Php 靜態方法的繼承和重寫

2021-10-09 03:53:35 字數 980 閱讀 4778

和非靜態屬性/方法一樣,靜態屬性和方法也可以被子類繼承,靜態方法還可以被子類重寫:

class

parents

public

static

function

who(

)public

static

function

who1()

}class

children

extends

parents

}echo parents:

:getclassname()

.php_eol

;//parents

echo parents:

:who()

.php_eol

;//parents

echo parents:

:who1()

.php_eol

;//parents

echo children:

:getclassname()

.php_eol

;//children

echo children:

:who()

.php_eol

;//parents

echo children:

:who1()

.php_eol

;//children

$this 指標始終指向持有它的引用物件不同,self 指向的是定義時持有它的類而不是呼叫時的,為了解決這個問題,從 php 5.3 開始,新增了乙個叫做後期靜態繫結的特性

後期靜態繫結

後期靜態繫結(late static bindings)針對的是靜態方法的呼叫,使用該特性時不再通過 self:: 引用靜態方法,而是通過 static::,如果是在定義它的類中呼叫,則指向當前類,此時和 self 功能一樣,如果是在子類或者其他類中呼叫,則指向呼叫該方法所在的類

靜態 static 方法的繼承和重寫

靜態方法大家應該都比較熟悉,在這裡主要談一下靜態方法在繼承時的一些注意事項。1 父類方法如果是靜態方法,子類不能覆蓋為非靜態方法 2 父類方法如果是非靜態方法,子類不能覆蓋為靜態方法 3 父類靜態方法可以被覆蓋,允許在子類中定義同名的靜態方法,但是沒有多型。下面對第3條特性進行一下 演示 class...

靜態 static 方法的繼承和重寫

靜態方法大家應該都比較熟悉,在這裡主要談一下靜態方法在繼承時的一些注意事項。1 父類方法如果是靜態方法,子類不能覆蓋為非靜態方法 2 父類方法如果是非靜態方法,子類不能覆蓋為靜態方法 3 父類靜態方法可以被覆蓋,允許在子類中定義同名的靜態方法,但是沒有多型。下面對第3條特性進行一下 演示 class...

java 靜態 static 方法的繼承和重寫

靜態方法大家應該都比較熟悉,在這裡主要談一下靜態方法在繼承時的一些注意事項。1 父類方法如果是靜態方法,子類不能覆蓋為非靜態方法 2 父類方法如果是非靜態方法,子類不能覆蓋為靜態方法 3 父類靜態方法可以被覆蓋,允許在子類中定義同名的靜態方法,但是沒有多型。下面對第3條特性進行一下 演示 class...