<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 里氏替換原則 ### 理解概念 在子類繼承父類時, 子類不能取復寫父類的方法。 舉例說明一下, 對于父類Car來講, 它提供了一個move方法, 子類BMW繼承自Car時可以拓展Car的move方法但不能對其進行覆蓋, move方法能被BMW的子類透明的調用。請看demo: ~~~js class Car { move() { console.log('I\'m running'); } }; class BMW extends Car { run() { this.move(); console.log('new method'); } }; const car = new Car(); const bmw = new BMW(); // 父類實例自然能調用move car.move(); // 子類應能透明調用父類方法, 不要讓子類自己也實現一個move方法進而覆蓋父類同名方法 bmw.move(); bmw.run(); ~~~ 不覆蓋父類的同名方法是防止程序出錯, 這和作用域里層同名會遮蔽外層同名變量的目的還不太一樣, 我們用子類取繼承父類多數是出于代碼的復用, 如果取覆蓋掉就沒有這層意思了, 看下面這個例子: ~~~js class Odd { getOdd(n) { return 2 * n + 1; } }; class Sub extends Odd { getOdd(n) { return 2 * n; } calc(n) { return this.getOdd(n) * 2; } }; const sub = new Sub(); sub.calc(5); // 20, 出錯了, 期望是22 ~~~ 這個程序的意圖是父類提供一個返回奇數的方法, 子類在繼承時無意重寫了, 導致子類在calc方法中調用getOdd會得到錯誤的結果, 以至于程序給出錯誤的結果 PS: 這里說到的子類不能覆蓋父類方法是說不建議這樣做, 并不是這樣做就會發生語法錯誤, 子類完全有覆蓋父類方法的能力, 如果要違背這一原則請務必三思而后行
                  <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>

                              哎呀哎呀视频在线观看