博客列表 >命名空间,类的继承与实现-2019年7月31日

命名空间,类的继承与实现-2019年7月31日

blog
blog原创
2019年08月05日 11:35:46708浏览

一.命名空间

1.默认情况下,同一空间下相同的类 、函数,常量,接口,相同的名称只能定义一次,为解决和管理名称相同但功能不相同的类、函数、常量,接口的情况,可以引入命名空间的方式进行解决

2.命名空间用namespace定义

3.没有定义的命名空间可称为匿名空间,匿名空间相当于全局空间。

4.在命名空间下我们甚至可以将关键字进行定义

实例

<?php
namespace one
{
    class Test {}
    //访问其他空间
    (new \two\Test()) ->show();
}

namespace two
{
    class Test {
        public function show()
        {
            echo __METHOD__."<hr>";
        }
    }
}

namespace three
{
    class Test {}
    echo Test::class;

}

运行实例 »

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

1.png

二.类的继承与实现

1.类用  class 关键字进行定义 ,类名的首字母通常大写,

2.类通过  $this-> 访问成员变量 和成员方法

3.构造函数:用于对象实例化时的对象的初始化 __construct() 

4.析构方法:在对象被清理被删除的时候自动调用该方法  __destruct()

5.类的继承可以实现对父类的扩展和重写,关键字为extends

6.子类在使用过程种,如重写了父类方法,并不影响子类种调用父类成员方法的过程,调用使用parent::父类成员方法

实例

<?php
namespace demo1;

class eat
{
    public $food1;
    public $food2;
    public function __construct($food1="米饭1",$food2="米饭2")
    {
        $this->food1=$food1;
        $this->food2=$food2;
    }
    public function GetFood()
    {
        return "你是要这个金的".$this->food1."还是要这个银的".$this->food2;
    }
}
class drink extends eat
{
    public $water;
    public function __construct($water,$food1 = "米饭1", $food2 = "米饭2")
    {
        parent::__construct($food1, $food2);
        $this->water=$water;
    }
    public function eating()
    {
        return "吃着".$this->food1."就着".$this->water;
    }
}
$drink =  new drink("白开水","西北风");
echo $drink->eating();

运行实例 »

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

1.png


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