物件導向高階特性部分總結

2021-09-29 15:22:28 字數 1649 閱讀 1539

繼承規則

在構造方法中,呼叫構造方法可以使用this和super關鍵字。

/**

* */

package test2;

/** * @author xiaochen

* */

public

class

animal

public

animal

(string string)

public

void

test()

}

/**

* */

package test2;

/** * @author xiaochen

* */

public

class

dogextends

animal

public

dog(string string)

public

void

test()

}

結論:無論是呼叫父類構造器,還是子類構造器,最終都會找到最頂級的父類自上而下例項化。中間環節有乙個構造器沒有找到,這個子類就無法完成例項化。許可權修飾符型別包括:public > protected > default > private

**許可權修飾符:

封裝機制:對成員訪問許可權的任何控制都稱為封裝機制。

protect 許可權修飾符

下面兩子類與父類的**是在不同包的

/**

* */

package test2;

/** * @author xiaochen

* */

public

class

super

}

/**

* */

package test;

import test2.super;

/** * @author xiaochen

* */

public

class

subextends

super

*///這是錯誤**

public

void

test()

}

protected:受保護的,除了可被類自身及與其在同乙個包中的**訪問外,還可以在乙個類中通過物件引用來訪問,前提是這些物件引用至少應該具有與該成員所在的類相同的型別,也即是這些引用具有該成員所在類的型別或是其一子型別。方法覆蓋規則

abstract關鍵字定義抽象方法和抽象類,抽象方法只有宣告,沒有實現方法,沒有方法體,

抽象方法需要子類重寫該方法,因此不能使用private和final修飾。

抽象類是抽象方法和非抽象方法的集合,可以有抽象類中全為抽象方法或全為非抽象方法的情況存在。

向上塑型(upcasting)

通過instanceof運算子判斷經過向上塑型後是哪乙個子類

判斷多型條件

PHP物件導向高階特性

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

物件導向高階特性之 slots

動態語言 可以在執行的過程中,修改 靜態語言 編譯時已經確定好 執行過程中不能修改 python允許在定義class的時候,定義乙個特殊的 slots 變數,來限制該class例項能新增的屬性 使用 slots 時注意 slots 定義的屬性僅對當前類例項起作用,對繼承的子類是不起作用的 impor...

物件導向 高階

json方式的物件導向 json 把方法包在json裡 json物件導向 有人管他叫 命名空間 在公司裡 把同一類 的方法包在一起 拖拽和繼承 物件導向的拖拽 改寫原有的拖拽 繼承 asdf 拖拽 instanceof 檢視物件是某個類的例項 使用繼承 限制範圍的拖拽類 建構函式的偽裝 屬性的繼承 ...