1. 程式人生 > >OOP思想中的抽象類和抽象方法

OOP思想中的抽象類和抽象方法

<?php
/*1.抽象方法:在一個方法中不使用方法體(不能使用{}的)就是抽象方法;
            抽象方法必須使用抽象關鍵詞abstract修飾;
  2.抽象類:如果一個類中有一個抽象方法的存在這個類就是抽象類;
            抽象類也必須使用abstract關鍵字來修飾;
    注意事項:1.只要使用abstract修飾的類就是抽象類;
              2.抽象類其實就是一種特殊的類(特殊在其中可以包含抽象方法;);
              3.除了在抽象類中可以有抽象方法外,其它的與正常的類完全一樣;
              4.抽象類不能例項化物件;
              5.如果看見抽象類就必須寫這個類的子類,將抽象類中的方法完全覆蓋(加上方法體);
              6.子類必須全部實現(覆蓋重寫)抽象方法,如果只實現部分,這個子類中就還存在抽象方法也就
              無法建立物件;
    抽象方法的作用:
            抽象方法規定了子類必須有這個方法的實現,功能交給子類去實現;
            只寫出來結構,功能交給子類按照自己的方法去實現;
    抽象類的作用:
            就是一種規範,要求子類的結構必須存在特定的功能
*/

  abstract class person{
          public $name;
          public $age;
          public $sex;
          
          abstract function say();

          abstract function eat();
  }
  class CNperson extends person{
      function say(){
          echo "我是中國人,我說中文<br>";
      }
      function eat(){
      echo "我用筷子吃飯<br>";
  }
  }
  class ENperson extends person{
      function say(){
          echo "我是英國人,我說英語<br>";
      }
      function eat(){
          echo "我用刀叉吃飯<br>";
      }
  }
  $p1=new enperson;
  $p1->say();
  $p1->eat();
 
?>