欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php抽象类详解

程序员文章站 2024-02-04 11:00:58
...
PHP 5 支持抽象类和抽象方法。定义为抽象的类不能被实例化。任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现。

注意:

  1. 继承一个抽象类的时候,子类必须定义父类中的所有抽象方法;

  2. 另外,这些方法的访问控制必须和父类中一样(或者更为宽松)。

  3. 方法的调用方式必须匹配,即类型和所需参数数量必须一致。

例:

<?phpabstract class AbstractClass{
    // 我们的抽象方法仅需要定义需要的参数
    abstract protected function prefixName($name);}class ConcreteClass extends AbstractClass{

    // 我们的子类可以定义父类签名中不存在的可选参数
    // 该访问控制只能是公有的(public)或受保护(protected)的
    public function prefixName($name, $separator = ".") {
        if ($name == "Pacman") {            $prefix = "Mr";
        } elseif ($name == "Pacwoman") {            $prefix = "Mrs";
        } else {            $prefix = "";
        }        return "{$prefix}{$separator} {$name}";
    }
}$class = new ConcreteClass;echo $class->prefixName("Pacman"), "\n";echo $class->prefixName("Pacwoman"), "\n";?>

结果:

Mr. Pacman
Mrs. Pacwoman

分析:

虽然子类定义了一个可选参数,而父类抽象方法的声明里没有,但和注意中的第三点并无冲突

相关推荐:

php抽象类的实现方法详解

php抽象类、接口的区别和选择实例详解

php抽象类特性实例详解

以上就是php抽象类详解的详细内容,更多请关注其它相关文章!

相关标签: php 详解 抽象