笼统类是不完整的,它只能用作基类。在面向对象要领中,笼统类重要用来举行范例隐蔽和充任全局变量的角色。 (引荐进修:PHP视频教程)
PHP 5 支撑笼统类和笼统要领。定义为笼统的类不能被实例化。任何一个类,假如它内里至少有一个要领是被声明为笼统的,那末这个类就必需被声明为笼统的。被定义为笼统的要领只是声清楚明了其挪用体式格局(参数),不能定义其细致的功用完成。
继续一个笼统类的时刻,子类必需定义父类中的一切笼统要领;别的,这些要领的接见掌握必需和父类中一样(或许更加宽松)。
比方某个笼统要领被声明为受庇护的,那末子类中完成的要领就应该声明为受庇护的或许公有的,而不能定义为私有的。
另外要领的挪用体式格局必需婚配,即范例和所需参数数目必需一致。
比方,子类定义了一个可选参数,而父类笼统要领的声明里没有,则二者的声明并没有争执。
这也适用于 PHP 5.4 起的组织函数。在 PHP 5.4 之前的组织函数声明能够不一样的。
笼统类示例
<?php abstract class AbstractClass { // 强迫请求子类定义这些要领 abstract protected function getValue(); abstract protected function prefixValue($prefix); // 一般要领(非笼统要领) public function printOut() { print $this->getValue() . "\n"; } } class ConcreteClass1 extends AbstractClass { protected function getValue() { return "ConcreteClass1"; } public function prefixValue($prefix) { return "{$prefix}ConcreteClass1"; } } class ConcreteClass2 extends AbstractClass { public function getValue() { return "ConcreteClass2"; } public function prefixValue($prefix) { return "{$prefix}ConcreteClass2"; } } $class1 = new ConcreteClass1; $class1->printOut(); echo $class1->prefixValue('FOO_') ."\n"; $class2 = new ConcreteClass2; $class2->printOut(); echo $class2->prefixValue('FOO_') ."\n"; ?>
以上例程会输出:
ConcreteClass1 FOO_ConcreteClass1 ConcreteClass2 FOO_ConcreteClass2
以上就是php笼统类有什么用的细致内容,更多请关注ki4网别的相干文章!