PHP筆記之繼承、重載、關鍵字

繼承

1.子類使用extends繼承父類,可以將父類所有內容繼承過來
2.private 只能自己用,子類都無法使用
3.protected這個是保護的權限,只能是自己和自己的子類使用的成員,外部不可使用
4.public 公開

重載

繼承中的重載(覆蓋):在子類中可以寫和父類同名的方法
parent::訪問父類中被覆蓋的方法
重要:只要是子類的構造方法,去覆蓋父類中的構造方法,一定要在子類的最上面調用一下父類被覆蓋的方法
權限問題:子類只能大于或等于父類的權限,不能小于

class Person {
        var $name;
        var $age;
        var $sex;
        
        function __construct($name,$age,$sex){
            $this -> name  = $name;
            $this -> age = $age;
            $this -> sex = $sex; 
        }
        function say(){
            echo "我的名字是:{$this->name}我的性別是:{$this->sex}";
        }
        function eat(){
        }
        function run(){
        }
    }
    class Student extends Person{
        var $school;
        function__construct($name,$age,$sex,$school){
    parent::__construct($name,$age,$sex,$school);
            $this->school = $school;
        }           
        function study(){
        }
        //重載
        public function say(){
            parent::say();
            echo "我在的學校";
        }
    }
    class Teacher extends Person{
        var $name;
        var $age;
        var $sex;
        var $dw;    
        function teach(){
        }
    }

關鍵字

1.instanceof 對象是不是某個類
2.在PHP中,final不定義常量,所以不能使用final修飾成員屬性
①final可以修飾類 ---這個類不能去擴展,不能有子類,也就是最終的類
②final可以修飾方法---這個方法,就不能在子類中覆蓋
3.static可以修飾屬性和方法,不能修飾類,
①使用static修飾成員屬性,存在內存的初始化靜態段。
②可以被所有同一個類的對象使用
③第一個用到類(類名第一次出現),類在加載到內存時,就已經將靜態的成員加到了內存
④靜態的成員一定要用類來訪問

Person::$country;

⑤.self可以在類中的方法中,代表自己的類
⑥腳本一旦加載,直到腳本釋放才結束
⑦在靜態的方法中,是不能訪問非靜態的成員的
⑧只要是能使用靜態的環境下聲明方法,就最好使用靜態方法效率

static function say(){
    echo"我的名字是:“self::$name.”<br>";
}

4.const
常用define定義常量
define("常量名","值");
const 修飾的成員屬性為常量,只能修飾成員屬性

類中
1.常量建議使用大寫,不能使用$
2.常量一定要在聲明時就給好初值
3.常量的訪問方式和static的訪問方式相同,但只能讀
①在類外部使用 類名::常量名
②在類的外部使用 self::常量名

  class Demo{
        const SEX = "男";
        static function say(){
          echo self::SEX."<br>";
   }
  }
  Demo::say();
//echo Demo::SEX;

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Advanced Language Features 知識點:一. static修飾符 static修飾符可以用來...
    風景涼閱讀 461評論 0 0
  • 一:java概述:1,JDK:Java Development Kit,java的開發和運行環境,java的開發工...
    ZaneInTheSun閱讀 2,689評論 0 11
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,767評論 18 399
  • 面向對象主要針對面向過程。 面向過程的基本單元是函數。 什么是對象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,096評論 0 4
  • 本文出自 Eddy Wiki ,轉載請注明出處:http://eddy.wiki/interview-java.h...
    eddy_wiki閱讀 1,227評論 0 5