Blogger Information
Blog 38
fans 0
comment 2
visits 24024
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
在子类中扩展父类的属性,并重载父类的方法 — 5月3日
→忆指凡尘&的博客
Original
823 people have browsed it

大家好:

       以下是我对在子类中扩展父类的属性,并重载父类的方法的练习,如有错误望大家指出

实例

<?php

class Phone1
{
    protected $brand;
    protected $model;
    protected $price;
    
    //构造方法
    public function __construct($brand,$model,$price)
    {
        $this->brand = $brand;
        $this->model = $model;
        $this->price = $price;
    }
    
    public function call()
    {
        return '打电话';
    }
}

运行实例 »

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

实例

<?php

/**
 * 创建子类用extends来继承父类
 * 子类的功能是用来扩展或重载父类的某些功能
 */

class Phone2 extends Phone1
{
    
    //创建查询器,实现了外部访问
    public function __get($name)
    {
        return $this->$name;
    }
    
    //对父类属性进行扩展,增加新的特征,如果不在子类中使用,推荐设置为private
    private $camera = false;  //是否有照相功能
    private $internet = false; //是否有上网功能
    
    //必须使用构造方法对使用当前新增属性生效
    public function __construct($brand,$model,$price,$camera,$internet)
    {

        //调用父类构造器初始化类属性
        parent::__construct($brand, $model, $price);
        
        $this->camera = $camera;
        $this->internet = $internet;
    }
    
    //增加新的方法,扩展父类的功能
    public function game()
    {
        return '玩游戏';
    }
    
    //将父类方法进行重写,就是功能重载,必须使用与父类一样的方法名:call()
    public function call()
    {
        return parent::call().',同时还能听歌,看视频';
    }
}

运行实例 »

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

实例

<?php

/* 
 * 类的继承与方法重载
 * 
 */

//使用自动加载器来加载类:(简写版)
spl_autoload_register(function($className){
    require './class/'.$className.'.php'; 
});

$Phone2 = new Phone2('vivo','x21', 3488,true,true);

echo '品牌: '.$Phone2->brand.'<br>'; 
echo '型号: '.$Phone2->model.'<br>'; 
echo '价格: '.$Phone2->price. '<br>';
//下面输出二个在子类中扩展的属性
echo '照相:'.($Phone2->camera?'支持':'不支持').'<br>';
echo '上网:'.($Phone2->internet?'支持':'不支持').'<br>';

echo $Phone2->call().'<br>'; //call()是父类中的方法
echo $Phone2->game().'<br>'; //game()是子类中的方法

运行实例 »

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

                                                                                       课程总结

1.了解子类继承父类的方法 — extends 例如:a  extends  b (子类a继承父类b)

2.学习在子类中调用父类构造器初始化类属性的方法 — parent::__construct()

3.php不支持多继承,仅允许从一个父类上继承,可以继承父类中的公共和受保护的成员

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post