PHP物件導向 ——封裝和繼承

來源:互聯網
上載者:User

標籤:const   完整性   部分   屬性   tom   傳回值   修飾符   images   子類   

物件導向的特徵

  1 封裝

  2 繼承

  3 多態

封裝

  封裝就是把對象的屬性和行為結合成一個獨立的相同單位,並儘可能隱蔽對象的內部細節

  優點:資訊隱蔽,封裝即隱藏。

  封裝的原則在軟體上的反映是:要求使對象以外的部分不能隨意存取對象的內部資料(屬性),從而有效避免了外部錯誤對它的“交叉感染”,使軟體錯誤能夠局部化,大大減少查錯和排錯的難度。 

  類的封裝性帶來的優點:隱藏類的實現細節,讓使用者只能通過事先定義好的方法來訪問資料,可以方便的加入邏輯控制,進行資料檢查,限制對屬性的不合理操作。便於修改增強代碼的可維護性

  //計算三角形的面積函數

  public function area($bottom, $height){

    return $bottom*$height/2;

  }

  如上的面積函數,我們只要把對應的參數底邊長度和高度傳遞到該函數中,就可以得到計算的面積結果,至於具體的實現步驟和過程可以忽略,而由實現該面積計算功能的函數去處理。

 

  PHP 中通過將資料封裝、聲明為私人的(private),再提供一個或多個公開的( public)方法實現對該屬性的操作,以實現下述目的:

    1.隱藏一個類的實現細節;

    2.防止對封裝資料的未經授權的訪問。使用者只能通過事先定製好的方法來訪問資料,可以方便地加入控制邏輯,限制對屬性的不合理操作;

    3.有利於保證資料的完整性;

    4.便於修改,增強代碼的可維護性;

 

繼承

  什麼是繼承?

    1.繼承是物件導向最重要的特點之一,就是可以實現對類的複用。

    2.通過“繼承”一個現有的類,可以使用已經定義的類中的方法和屬性。

    3.繼承而產生的類叫做子類。

    4.被繼承的類,叫做父類,也被成為超類。

    5.PHP 是單繼承的,一個類只可以繼承一個父類,但一個父類卻可以被多個子類所繼承。

    6.從子類的角度看,它“ 繼承( inherit , extends) ”自父類;而從父類的角度看,它“派生(derive)”

     子類。它們指的都是同一個動作,只是角度不同而已。

    7.子類不能繼承父類的私人屬性和私人方法。

  簡單例子:動物------>狗

    class Animal{

      public $name=‘我是動物‘;

      public function getName(){

        return $this->name;

      }

    }

    class Dog extends Animal{

      public function __construct(){

        $this->name=‘這個是狗狗‘;

      }

    }

 

存取控制

  在 PHP5 中,可以在類的屬性和方法前面加上一個修飾符( modifier),來對類進行一些訪問上的控制

  

重寫

  如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,這個過程叫方法的覆蓋( override),也稱為方法的重寫。

  當對父類的方法進行重寫時,子類中的方法必須和父類中對應的方法具有相同的方法名稱, 在 PHP5 中不限制輸入參數類型、參數數量和傳回值類型。(這點和 JAVA 不同)

  子類中的覆蓋方法不能使用比父類中被覆蓋方法更嚴格的存取權限。

this

  PHP5 中為解決變數的命名衝突和不確定性問題,引入關鍵字“$this”代表其所在當前對象。

  $this 在建構函式中指該建構函式所建立的新對象

  在類中使用當前對象的屬性和方法,必須使用$this->取值。

  方法內的局部變數,不屬於對象,不使用$this 關鍵字取值。

parent

  PHP5 中使用 parent::來引用父類的方法。

  parent:: 可用於調用父類中定義的成員方法。

  parent::的追溯不僅於直接父類。

PHP物件導向 ——封裝和繼承

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.