博客列表 >父类子类,子类扩展与重载—2018年5月4日9时12分

父类子类,子类扩展与重载—2018年5月4日9时12分

Gee的博客
Gee的博客原创
2018年05月04日 09:16:20644浏览

父类:

实例

<?php


class Mp3
{
    protected $brand;
    protected $price;
    protected $capacity;

    public function __construct($brand, $price, $capacity)
    {
        $this->brand = $brand;
        $this->price = $price;
        $this->capacity = $capacity;
    }

    public function play()
    {
        return '播放音乐';
    }
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

子类:

实例

<?php


class Mp4 extends Mp3
{
    public function __get($name)
    {
        return $this->$name;
    }

    private $music = false;
    private $internet = false;

    public function __construct($brand, $price, $capacity, $music, $internet)
    {
        parent::__construct($brand, $price, $capacity);
        $this->music = $music;
        $this->internet = $internet;
    }

    public function video()
    {
        return '播放视频';
    }

    public function play()
    {
        return parent::play().',同时还能录音';
    }
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

案例:

实例

<?php

spl_autoload_register(function ($className){
    $path = __DIR__.'/class/'.$className.'.php';
    if (file_exists($path) && is_file($path)) {
        require $path;
    }
});

$mp4 = new Mp4('sony',1888,'16G',true,true);

echo '品牌: '.$mp4->brand.'<br>';
echo '价格: '.$mp4->price.'<br>';
echo '容量: '.$mp4->capacity.'<br>';
echo '是否支持播放音乐: '.($mp4->music ? '支持' : '不支持').'<br>';
echo '是否支持上网: '.($mp4->internet ? '支持' : '不支持').'<br>';

echo $mp4->play().'<br>';
echo $mp4->video().'<br>';

运行实例 »

点击 "运行实例" 按钮查看在线实例

效果图:

搜狗截图20180504091342.png

总结:

子类继承用extends

public: 在外部、内部、子类中都可以用
private: 仅限于类内部使用
protected: 在本类和子类中使用

类的自动加载:

实例

spl_autoload_register(function ($className){
    str_replace('\\','/',$className);
    $path = __DIR__.'/class/'.$className.'.php';
    if (file_exists($path) && is_file($path)) {
        require $path;
    }
});

运行实例 »

点击 "运行实例" 按钮查看在线实例


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议