|
嘛是类呢? 到现在还不懂可以去死了;
不过这里有个坑我没踩完,回头踩踩!!!- class Car
- {
- public $name = '汽车' ; // 定义公共属性
- //可以在外部调用时根据需要改变属性的值或者赋予未定义的属性值。
- protected $shop = '4S店' ; // 定义受保护属性
- // 子类可以调用,外部不能调用 ,但是实例化的对象无法使用【可以通过public 方法改变此值】。
- private $pop = 'laomo' ; //定义 私有属性
- // 子类不能调用、外部不能调用;
-
- public function showShop(){
- return $this -> shop.'<br/> }
- public function showPop(){
- return $this -> pop.'<br/> }
- // 创建对象时,构造方法会被自动调用,构造方法可以确保必要的属性设置,并完成任何需要准备的工作
- public function __construct(){
- // $this->name = $name; // 使用伪变量$this给每个变量赋值
- // $this->shop = $shop;
- // $this->pop = $pop;
- print '构造函数被调用<br/> }
- }
- // 测试
- $car = new Car();
- echo $car->name; //成功
- // echo $car->shop; // 错误 受保护属性不被外部访问
- // echo $car->pop; //错误 私有属性不被外部访问
- // 换外部方法访问
- echo $car->showShop(); // 通过 函数访问内部受保护属性 成功
- echo $car->showPop(); // 通过 函数访问内部私有属性 成功
-
- // 子类测试
- // // 若派生类没有定义构造方法,则它在实例化是会自动调用父类的构造方法。子类默认继承父类所有的 public 和 protected 方法,但不继承 private 方法和属性
- class Lanniao extends Car
- {
- // 这样的取值有问题 parent:: 属性名是错误的, 应该是
- // public $amm = shop;
- function __construct(){
- print '进入了子类 }
- function abc(){
- $ab = parent::showShop();
- $ac = parent::showPop();
- echo '<br/>子类访问测试——————'.$ab;
- echo '<br/>子类访问测试——————'.$ac; // 私有属性也可以这么访问 但是直接访问不行
- }
-
-
- }
- $c = new Lanniao();
- $c -> abc();
- echo $c -> name;
复制代码
|
|