PHP教程

php中abstract的用法

本文主要是介绍php中abstract的用法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
<?php

// 1.声明抽象方法的必须声明为抽象类
//2.抽象类不能被实例化  new AbstractClass();会报错
//3.抽象方法不能定义具体功能实现,只是声明其调用方式,不能呢过定义其具体功能实现
abstract class AbstractClass{
    abstract protected function getValue();
    abstract protected function getPrefixValue($prefix);
    public function printOut()
    {
        print $this->getValue();
    }
}

//继承一个抽象类的时候,子类必须实现父类的抽象方法
//这些访问控制必须和父类一样或者更为宽松
//父类中的抽象方法必须和子类中实现方法的参数类型和数量一致(有待确认,可以加默认参数)
//例如,子类的实现的抽象方法中定义一个可选参数,而父类中声明没有,则两者并无冲突;父类抽象方法有,子类没有也可以
class ConcreteClass1 extends AbstractClass{
    protected function getValue($value="")
    {
        return "ConcreteClass1";
    }

    public function getPrefixValue($prefix)
    {
        // TODO: Implement getPrefixValue() method.
        return "{$prefix}ConcreteClass1";
    }
}

class ConcreteClass2 extends AbstractClass{
    protected function getValue()
    {
        // TODO: Implement getValue() method.
        return "ConcreteClass2";
    }

    public function getPrefixValue($prefix,$separator="")
    {
        // TODO: Implement getPrefixValue() method.
        return "{$prefix}ConcreteClass2".$separator;
    }
}


$class1 = new ConcreteClass1();
$class1->printOut();
echo $class1->getPrefixValue("FOO_");

$class2 = new ConcreteClass2();
$class2->printOut();
echo $class2->getPrefixValue("FOO_","ON");

这篇关于php中abstract的用法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!