php-抽象方法

资料

php官网抽象类详解
链接
  • 说明

定义为抽象的类不能被实例化。任何一个类,如果它里面至少有一个方法是被声明为抽象的,
那么这个类就必须被声明为抽象的。被定义为抽象的方法只是声明了其调用方式(参数),
不能定义其具体的功能实现。
继承一个抽象类的时候,子类必须定义父类中的所有抽象方法;
另外,这些方法的访问控制必须和父类中一样(或者更为宽松)。
例如某个抽象方法被声明为受保护的,那么子类中实现的方法就应该声明为受保护的或者公有的,
而不能定义为私有的。此外方法的调用方式必须匹配,即类型和所需参数数量必须一致。
例如,子类定义了一个可选参数,而父类抽象方法的声明里没有,则两者的声明并无冲突。

代码示例

<?php

abstract class AbstractCar
{
    /**
     * 定义一个车的抽象
     * 车不是具体的车,车有三轮车,四轮车,还有两轮车,
     * 但是都有的特点就是都能坐人,都能跑,都有颜色等等
     * 所以不是具体的是抽象的,
     * 玩具车也是同理不过玩具车做的只能是小人
     */
    public function getColor()
    {
        print_r($this->color());
    }

    abstract public function color();
}

# 自行车 继承抽象类 车
class Bicycle extends AbstractCar
{
    public function color()
    {
        return 'black';
    }
}

# 拖拉机 继承抽象类 车
class  Tractors extends AbstractCar
{
    public function color()
    {
        return 'red';
    }
}

# 实例化自行车
$bicycle = new Bicycle();
print_r($bicycle->getColor());# 输出black

# 实例化汽车
$tractors = new Tractors();
print_r($tractors->getColor());# 输出red
posted @ 2021-09-07 13:01  以己为镜  阅读(89)  评论(0编辑  收藏  举报