<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                面向對象基本特征: ### **封裝** 1. 隔離性: 被封裝后的對象,其外部對象是無法直接訪問對象的內部實現細節,內部實現細節的的改動不會影響到外部對象的訪問原則(即:對象內部修改后,在公開暴露指定的訪問路徑不變的情況下,外部訪問它的對象是無需修改的),這是隔離性的體現,同時也是實現高內聚,低耦合的最根本的思想之一; 2. 可復用性: 被封裝后的對象可以被外部多個對象訪問,而無需為每個外部對象去指定不同的服務對象;減少代碼的冗余。 3. 可讀性: 合理設置被封裝的對象名稱,可增強代碼的可讀性,通過方法名或者類名即可了解其作用。 ### **繼承** 1. PHP中主要通過extends關鍵字來實現繼承: class Student extends Person{} 2. PHP只能單繼承,不支持一個類繼承多個類。但是一個類可以進行多層繼承(即A繼承于B,而C又繼承于A,C通過A間接繼承了B) 3. 子類繼承父類非私有的屬性和方法,可以通過$this關鍵字進行訪問 4. 覆蓋:子類中聲明與父類相同名稱的屬性和方法,則該屬性和方法會覆蓋父類中的屬性和方法,屬性被覆蓋后,無法訪問父類中的屬性,方法被覆蓋后,可以通過parent::方法名()進行訪問 ### **多態** 同一方法作用于不同對象時,產生不同的執行結果 多態存在的三個必要條件:繼承、重寫(子類繼承父類后對父類方法進行重新定義)、父類引用指向子類對象 示例如下: ``` abstract class Person{ // 父類使用abstract關鍵字修飾 abstract function say(); } class Chinese extends Person{ // 子類重寫父類方法 function say(){ echo "我是中國人<br>"; } } class English extends Person{ // 子類重寫父類方法 function say(){ echo "我是英國人"; } } $zhangsan = new Chinese(); $zhangsan->say(); $z = new English(); $z->say(); Person $p = new Chinese(); // 父類引用指向子類對象 上述代碼中,兩個子類都是繼承自同一父類,但因為都重寫了父類的方法,表現出了不同的形態 ``` 基本原則: ### **1、單一職責原則(SRP)** 單一職責有兩個含義:一個是避免相同的職責分散到不同的類中,另一個是避免一個類承擔太多職責 ### **2、開放封閉原則(OCP)** 一個模塊在擴展性方面應該是開放的而在更改性方面應該是封閉的 ### **3、里氏替換原則(LSP)** 子類型必須能夠替換掉它們的父類型,并出現在父類能夠出現的任何地方。 ### **4、依賴倒置原則(DIP)** 依賴倒置簡單地講就是將依賴關系倒置為依賴接口,具體概念如下: * 上層模塊不應該依賴于下層模塊,它們共同依賴于一個抽象(父類不能依賴子類,它們都要依賴抽象類)。 * 抽象不能依賴于具體,具體應該依賴于抽象。 ### **5、接口隔離原則(ISP)** 不同的模塊要通過抽象接口隔離開,而不是通過具體的類強耦合。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看