PHP抽象类abstract关键字

时间:2022-07-23
本文章向大家介绍PHP抽象类abstract关键字,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

用abstract定义的类不能被实例化。有一个函数为abstract的类,这个类就必须是abstract,子类必须

定义所有的父类中的abstract函数,子类中函数的作用域只能被扩大,不能缩小。

<?php

abstract class AbstractClass

{

    // Force Extending class to define this method

    abstract protected function getValue();

     abstract protected function prefixValue($prefix);



    // Common method

    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";

?>

The above example will output:

ConcreteClass1

FOO_ConcreteClass1

ConcreteClass2

FOO_ConcreteClass2