物件導向特性 多型

2021-07-10 11:00:44 字數 2003 閱讀 9118

(1)抽象類和方法

只在父類中宣告,在子類中實現,用abstract宣告。作用是給子類作規範。

規則:抽象類不能例項化,只能被繼承;抽象方法必須被子類方法重寫。

建立:

abstract class computer

抽象類裡面的抽象方法必須在子類裡面重寫,不然會報錯。

abstract class computer

class notecomputer extends computer

}

抽象類裡面的普通方法不需要重寫,子類會自動繼承下來。

只要類裡面有乙個抽象方法,那麼這個類必須是抽象類,類前面必須加上abstract;反之也是,抽象類裡面要有抽象方法,不然裡面要加上抽象幹嘛呢。

抽象類裡面也是可以有正常的字段的。

類只支援單繼承,不能實現多繼承的。

(2)介面(inte***ce)

介面是一種特殊的抽象類,也是不能例項化的。

介面定義了實現某種類的一般規範,宣告了所需的函式和常量,但不指定如何實現。

介面是為了規範實現它的子類,以達到統一的目的。

規則:類裡面全部為抽象方法(不需要宣告abstract),沒有方法體;介面抽象方法必須是public;成員(字段)必須是常量。

定義為:

inte***ce computer

使用介面常量:

echo computer::name;
子類繼承介面的說法,叫做實現。

class notecomputer implements computer

public function _run2()

}

介面是可以多實現的。

inte***ce computer

inte***ce computer2

class notecomputer implements computer,computer2

public function _run2()

public function _run3()

}

如何選擇抽象類和介面呢?如果是要繼承多個類的方法規範,就用介面;如果要共享乙個方法體內容,就用抽象類。

(3)多型

介面的多種不同的實現方式即為多型。把不同的子類物件都當作父類來看,可以遮蔽不同子類物件之間的差異,寫出通用的**,做出通用的程式設計,以適應需求的不斷變化。

多型,多種形態。

乙個動作由不同的人去執行,而產生不同的效果或者結果,即為多型。

乙個人通過不同的狀態去執行同一種動作,形成不同的結果,也可以稱作為多型。

多型原理,就是類寫好啦,不要去修改它,只要在類外的呼叫引數的更改

<?php

//園丁 剪 修理花草

//理髮師剪 理髮

//總裁 剪 裁員

// 人 筆記本 執行 win7開機了

// 人 台式電腦 執行 xp開機了

inte***ce computer

//建立乙個筆記本類來實現介面

class notecomputer implements computer

public function work()

} //建立乙個台式電腦的類來實現介面

class desktopcomputer implements computer

public function work()

} class person

} $notecomputer = new notecomputer();

$desktopcomputer =new desktopcomputer();

$person = new person();

$person->_run($notecomputer);//這種傳遞,叫做物件引用的傳遞

?>

物件導向特性 多型

多型的概念 類的多型是類的重要特性,它可以讓例項在呼叫他們的共同屬性時不考慮具體的類,體現的是一種執行時的繫結關係 動態繫結 類的多型體現在同乙個類例項化出來的物件呼叫同乙個方法,執行的邏輯不相同 注意 體現類的多型有兩個條件 1.有子類的繼承 2.子類需要呼叫這個方法 所以,多型算是繼承的實現細節...

物件導向特性 多型

動態繫結 父類的引用,引用子類的物件 直接賦值 student stu newcollegestudent df soft 方法傳參 3.返回值接收 滿足動態繫結的條件 向上轉型並且通過父類呼叫子類重寫的方法 編譯時 呼叫父類的方法 執行時 呼叫子類重寫的方法。子類實現父類同名方法,並且引數的型別和...

物件導向的特性 多型

1.虛函式 在類的成員函式前加virtual即構成虛函式。作用是通過基類的指標與引用呼叫派生類的成員函式 2.多型的概念 多型即多種形態,通過呼叫不同的函式實現不同的功能。如買票機制,不同的物件買票的制度也不同,如普通人買全票,學生可買半價票等。3.多型的條件 1 虛函式的重寫 子類定義乙個與父類的...