Blogger Information
Blog 61
fans 0
comment 0
visits 62945
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
类的继承与访问控制
Pengsir
Original
561 people have browsed it
<?php
class Person
{
    public $name;
    private $age;
    protected $sex;

    public function __construct($name='peng',$age=18,$sex='男')
    {
        $this->name=$name;
        $this->age=$age;
        $this->sex=$sex;
    }
    public function eat($food='菜')
    {
        return $this->name.'喜欢'.$food;
    }
    //创建一个访问私有属性的公共接口
    public function getAge()
    {
        return $this->name.'年龄是:'.$this->age;
    }
    //创建一个访问受保护的公共接口
    public function getSex()
    {
        return $this->name.'性别是:'.$this->sex;
    }
}
class Woman extends Person
{
    //创建子类自己的属性
    public $job;
    //创建子类的构造方法,它会自动继承父类,可以删除父类中的构造器的
    public function __construct($name='peng',$job = 'song')
    {
        parent::__construct($name);//导入父类中的构造方法(器)
        $this->job=$job;//初始化当前类(Woman)中的属性
    }
    //在子类中创建自己的方法
    public function getJob()
    {
       return $this->name.'的工作是:'.$this->job;
    }
    //在子类中重写父类中的方法,实现多态
    public function eat($food='肉')
    {
        return $this->name.'喜欢'.$food;
    }

    //在子类中不能创建同名方法来访问父类的私有属性
    public function getAge()
    {
//       return $this->name.'的年龄是'.$this->age.'岁啦~~<br>';
    }

    //创建访问受保护属性的公共接口 不仅能访问还能改写
    public function getSex()
    {
//        return parent::getSex(); // TODO: Change the autogenerated stub
        return $this->name.'性别是:'.$this->sex;
    }
}
echo (new Woman)->eat();//适合于临时或一次性访问对象方法
echo '<hr>';
$woman =new Woman('LUCY');
echo $woman->eat('老北京鸡肉卷');
echo '<hr>';
echo (new Woman('lili','shopping'))->getJob();
echo '<hr>';
echo (new Person())->getAge();//父类对象调用父类私有属性
echo '<hr>';
echo (new Woman())->getAge();//子类对象调用父类私有属性不能访问
echo '<hr>';
echo (new Person())->getSex();
echo '<hr>';
echo (new Woman('haimei','play'))->getSex();

图:

类的继承与访问控制.png

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