Heim >php教程 >PHP开发 >Was ist zu beachten, wenn abstrakte PHP-Klassen abstrakte Klassen erben?

Was ist zu beachten, wenn abstrakte PHP-Klassen abstrakte Klassen erben?

高洛峰
高洛峰Original
2016-11-19 11:49:401460Durchsuche

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&#39;t inherit abstract function User::setSal() (previously declared abstract in VipUser) in E:\PH

Schlussfolgerung: Abstrakte Klassen erben abstrakte Klassen, um abstrakte Klassen 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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn