PHP入门(8) 面向对象(1) 方法和属性的覆盖 访问父类

1.子类无法访问父类private 属性和方法

2.不支持方法的重载

<?php

class _Parent{
    //子类中无法访问父类private属性 protected可以
    private  $data = "parent";
    protected   $data2 = "protected data";

    public function _print()
    {
        echo $this->data . "<br>";
    }
}

class childA extends _Parent{
}

class childB extends _Parent{

    protected $data = "childB";
 // 覆盖父类的属性
                              // 覆盖父类的方法
    public function _print()
    {
        echo $this->data . "<br>";
    }
}

class childC extends _Parent{
    public  function  other(){
       // echo  $this->data; 错误 不能访问父中 private属性
        echo  $this->data2;
    }
    //错误  无法重载方法 若要重写  必须参数和返回值相同
    public  function _print($d)
    {
        echo  $this->data2 . $d;
    }
}

$A = new childA();
$B = new childB();
$C = new childC();
$A->_print();
$B->_print();
$C->other();
//错误 PHP不支持方法的重载
$C->_print(",hi");
?>
posted @ 2017-01-09 21:11  天涯海角路  阅读(269)  评论(0)    收藏  举报