如何在php中实现抽象类?
时间:2020-02-23 14:41:59 来源:igfitidea点击:
PHP中的抽象类
至少具有一个方法的类,该方法是其中没有任何实际代码的方法,仅包含名称和参数,并且被标记为"抽象",被称为抽象类。
当我们想要定义一个抽象类时,我们需要使用关键字abstract。
为了提供一种模板来继承并强制继承类实现抽象方法,我们使用一个抽象类。
它既可以包含抽象方法,也可以包含非抽象方法。
创建一个抽象类
</pre> <?php //abstract class abstract class school { //abstract function teach abstract public function teach(); } ?>
在上面的示例中,我们的类学校是一个抽象类,它具有抽象方法。
如果我们想创建一个扩展我们类学校的新类,那么我们将必须提供对抽象方法教导的定义,否则子类也应该是抽象的。
所有子类都必须为方法teacher()提供一个定义。
抽象类内部的非抽象方法
非抽象方法也可以与或者不与抽象方法一起存在于Abstract类中。
因此,抽象类也被称为部分实现的类。
子类可以直接访问和使用它们,而不会覆盖它们。
<?php //abstract class abstract class school { //It is protected variable protected $subject; //It is non-abstract public function english public function english() { echo $this->subject. " English Subject "; } //It is non-abstract public function computer public function computer() { echo $this->subject. " Computer Science subject "; } //It is non-abstract public function tenthClassa public function tenthClass($group) { $this->subject = $group; } //It is abstract public function teach abstract public function teach(); } ?>
在上文中,我们在抽象学校类中添加了三种非抽象方法english(),computer()和tenthClass()。
在PHP中继续进行此抽象类
抽象类的工作
下面的示例演示了抽象类的工作
<?php abstract class school { //abstract method only needs to define the required arguments abstract protected function subject($name); } class ConcreteClass extends school { public function subject($sub) { $sub1=$sub; return $sub; } } $obj = new ConcreteClass; echo $obj->subject("English"); echo " "; echo $obj->subject("Computer Science"); ?>