PHP之物件導向篇(3)

來源:互聯網
上載者:User

標籤:作用   同步   image   查錯   rac   php5   str   int   結構   

這次接著上一篇來講;

物件導向的三大特徵,之前已經講了1個了,現在講後2個:封裝、多態

1.什麼是封裝?和pulic類似的存取修飾詞分別有什麼作用?

所謂封裝,就是類可以把自己的資料和方法只讓可信的類或者對象操作,對不可信的進行‘資訊隱藏’(優點)。
* 把對象的屬性和行為結合成一個獨立的相同單位,並儘可能隱藏對象的內部細節。

封裝是物件導向的特徵之一,是對象和類概念的主要特性。

* 封裝的原則在軟體上的反應是:
要求使對象以外的部分不能隨意存取對象的內部資料(屬性),從而有效避免了外部錯誤對它的‘交叉感染’。使軟體錯誤能局部化,
大大減少了查錯和排錯的難度
* 封裝實現的目的:
* 隱藏一個類的實現資料
* 防止對封裝資料的未經授權的訪問
* 有利於保證資料的完整性
* 便於修改,有利於增強代碼的可維護性

 PHP中有三種存取修飾詞,分別是: 
public(公用的、預設) protected(受保護的) private(私人的) 

它們可以分別用在類的屬性和方法上(類的屬性和方法統稱為類的成員),用來修飾類成員的存取權限。 public(公用的、預設) 
在PHP5中如果類沒有指定成員的存取修飾詞,預設就是public的存取權限。 

當類的成員被聲明為public的存取修飾詞時,該成員能被外部代碼訪問和操作。
private(私人的) 被定義為private的成員,對於類內部所有成員都可見,沒有訪問限制。對類外部不允許‘直接’訪問。 
protected(受保護的) protected稍微有點複雜,被聲明為protected的成員,只允許該類的子類進行訪問。

舉例:

講完了封裝,現在我們來看看多態:

* 所謂多態就是指一個類執行個體的相同方法在不同情形有不同表現形式。
* 多態機制使具有不同內部結構的對象可以共用相同的外部介面。

關於多態,就不得不說起 抽象和介面這兩個概念了

2.什麼是抽象?抽象的關鍵字是什嗎?

1)、抽象關鍵字 :abstract
抽象就是無法確切的說明,但又有一定的概念或者名稱;也可以指不代表任何具體事物的一種概念。

* 抽象分為抽象類別和抽象方法

2)、 關於抽象類別

//抽象類別的定義

* 使用抽象關鍵字修飾的類就叫抽象類別
* 抽象類別不一定需要有抽象方法,但是包含抽象方法的類一定是抽象類別
* 抽象類別不能夠執行個體化

//抽象類別的幾個特點:
     1、不能被執行個體化,只能被繼承
     2、繼承的衍生類別當中要把所有抽象方法重載才能執行個體化

3)關於抽象方法

//抽象方法的定義
* 使用abstract修飾的函數方法叫抽象方法
* 抽象方法只有函數的聲明部分,不包括實現部分,只要用分號代表出來
* 繼承了帶有抽象方法的類必須實現抽象方法的定義

//抽象方法的幾個特點:
1、類中至少有一個抽象方法
2、抽象方法不允許有{}
3、抽象方法前面必須要加abstract

舉例:

3.什麼是介面?介面的關鍵字以及用法?

介面是一種特殊的抽象類別,也可以看做是一個模型的規範。

PHP介面(interface)的特點 
1、在介面中的函數都是公用的抽象函數方法
2、介面的方法是不能添加關鍵字,可省略public
3、介面可以定義常量,但不能定義成員屬性,常量的定義和用法和類中常量一樣。 
4、介面通常都是一組功能的集合
5、介面也可以繼承。
* 介面是抽象方法和靜態常量定義的集合
* 實現了某個介面,必須實現該介面中的所有的抽象方法

 

介面與抽象類別大致區別如下:

1. 一個子類如果 implements 一個介面,就必須實現介面中的所有方法(不管是否需要);如果是繼承一個抽象類別,只需要實現需要的方法即可。
2. 如果一個介面中定義的方法名改變了,那麼所有實現此介面的子類需要同步更新方法名;而抽象類別中如果方法名改變了,其子類對應的方法名
將不受影響,只是變成了一個新的方法而已(相對老的方法實現)。
3. 抽象類別只能單繼承,當一個子類需要實現的功能需要繼承自多個父類時,就必須使用介面。

舉例:

 

PHP之物件導向篇(3)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.