如何在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");
?>