本文主要是介绍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的用法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!