Wenn eine abstrakte Klasse eine andere abstrakte Klasse erbt, kann die abstrakte Methode der abstrakten übergeordneten Klasse in der abstrakten Klasse nicht überschrieben werden. Eine solche Verwendung kann als Erweiterung abstrakter Klassen verstanden werden.
Das folgende Beispiel zeigt, dass es nicht erforderlich ist, die abstrakte Methode zu überschreiben, wenn eine abstrakte Klasse von einer anderen abstrakten Klasse erbt.
<? abstract class User { protected $sal = 0; abstract function getSal(); abstract function setSal($sal); } abstract class VipUser extends User { } ?>
Nachdem eine abstrakte Klasse geerbt wurde, können ihre abstrakten Methoden nicht überschrieben werden. Wenn es zu einem Überschreiben kommt, meldet das System einen Fehler.
<? abstract class User { protected $sal = 0; abstract function getSal(); abstract function setSal($sal); } abstract class VipUser extends User { abstract function setSal(); } ?>
Ergebnisse der Programmausführung:
Fatal error: Can't inherit abstract function User::setSal() (previously declared abstract in VipUser) in E:\PHPProjects\test.php on line 14
Schlussfolgerung: Abstrakte Klasse erbt abstrakte Klasse, um die abstrakte Klasse zu erweitern.
<? abstract class User { protected $sal = 0; abstract function getSal(); abstract function setSal($sal); } abstract class VipUser extends User { protected $commision = 0; static abstract function getCommision(); abstract function setCommision(); } ?>
Der obige Code erweitert die Methode der übergeordneten Klasse