php物件導向理解(一)

來源:互聯網
上載者:User

標籤:error   秘密   this   並且   parent   div   des   ror   構造   

常用的繼承過程,以及對public、private、protected修飾符的理解:

/*****************************父類********************************//*** person父類*/class person {       public $name;       //共有屬性在類的裡面和外面都可以被訪問,可以被子類繼承    public $age;    public $sex;    protected $myprotect;   //受保護屬性,不能被外部存取,只能在類裡面被訪問,以及繼承了本類的子類可以訪問    private $myprivate;     //私人屬性,只能被本類的內部訪問,不能被外部存取,也不能被子類繼承訪問    public static $mystaticObj;  //全域靜態變數,直接通過類方法訪問    /**    * 構造方法    */    function __construct($name,$age,$sex)    {        $this->name = $name;        $this->age = $age;        $this->sex = $sex;        $this->myprotect = "myprotect";        $this->myprivate = "myprivate";    }    /**    * 共有執行個體方法,可以被類的裡面和外面訪問,並且可以子類繼承重寫    */    public function personInfo() {          echo "姓名:".$this->name."\n"."年齡:".$this->age."\n"."性別:".$this->sex."\n"."myprotect:".$this->myprotect."\n"."myprivate:".$this->myprivate;    }    /**    * 私人執行個體方法,可以被類的裡面訪問,但不能被類的外面訪問,也不能被子類繼承訪問    */    private function mysecret() {        echo "這是我的秘密,不能告訴你";    }    /**    * 受保護執行個體方法,可以被類的裡面訪問,也可以被子類訪問,但不能被類的外面訪問    */    protected function myprotectfun() {        echo "這是我的myprotectfun方法";    }    public static function share() {        echo "靜態方法,直接通過類名調用";    }    function __destruct() {        echo "god damn,I die";    }}/*****************************子類********************************//*** 繼承自person的子類*/class student extends person{    public $grade;    function __construct($name,$age,$sex,$grade)    {        parent::__construct($name,$age,$sex);        $this->grade = $grade;    }    public function personInfo() {        parent::personInfo();        echo "\n"."grade:".$this->grade."\n";        /*  結果:            姓名:klp            年齡:24            性別:male            myprotect:myprotect            myprivate:myprivate            grade:six            這是我的子類myprotectfun方法        */        $this->myprotectfun();    }    protected function myprotectfun() {        echo "這是我的子類myprotectfun方法";    }    public static function share() {        echo "子類靜態方法,直接通過類名調用";    }}// $obj = new person("klp","26","male");// $obj->personInfo();// $obj->myprotect;   報錯:Fatal error: Cannot access protected property person::$myprotect// $obj->mysecret();  /*報錯:Fatal error: Call to private method person::mysecret() from context*/// person::share();  /*靜態方法,直接通過類名調用*/$stu = new student("klp","24","male","six");$stu->personInfo();$stu->myprivate;   /*返回為空白,但是不會報錯*/student::share();  /*子類靜態方法,直接通過類名調用*/

 

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.