Heim  >  Artikel  >  Backend-Entwicklung  >  abstrakte Klasse in PHP

abstrakte Klasse in PHP

无忌哥哥
无忌哥哥Original
2018-06-28 15:11:381436Durchsuche

* Abstrakte Klasse

* 1. Verwenden Sie Schlüsselwörter: abstract

* 2. Solange es eine Methode in der als abstrakte abstrakte Methode deklarierten Klasse gibt, muss diese Klasse deklariert werden als abstrakte Klasse

* 3. Abstrakte Methoden dürfen nur Methodendeklarationen und Parameterlisten haben, Methodenkörper sind nicht zulässig

* 4. Aufgrund der Unsicherheit abstrakter Methoden ist die Instanziierung zulässig von abstrakten Klassen ist verboten.

* 5. In einer Unterklasse, die eine abstrakte Klasse erbt, müssen alle abstrakten Methoden in der abstrakten Klasse implementiert werden

* 6. Zugriff auf Unterklassenmitglieder Die Einschränkungsstufe muss gleich oder kleiner als der Vertrag der abstrakten Klasse sein. Wenn die abstrakte Klasse beispielsweise geschützt ist, muss die Unterklasse

* geschützt oder öffentlich

sein

* ist nicht zulässig. 7. Die Parameter der Unterklassenmethode müssen mit den Parametern abstrakter Klassenmethoden identisch sein, es dürfen jedoch Standardparameter hinzugefügt werden

* Achten Sie besonders auf

* 1. Obwohl die abstrakte Klasse nicht instanziiert werden kann, können Sie dennoch einen Konstruktor dafür erstellen, dieser muss jedoch als endgültig deklariert werden

* 2. Theoretisch sollten abstrakte Klassen keine statischen Mitglieder haben . Einige Editoren werden E_STRICT2048 auffordern, aber Sie können dies trotzdem tun

abstract class Fruits
{
    //水果名称
    protected $name;
    
    //声明静态属性,因为要用到静态类中
//    protected static $name;
    
    
    //抽象方法
    abstract public  function eat();
    
    //静态抽象方法
//    abstract static public  function eat();
    
    //尽管不能直接实例化抽象类,但仍然可以有构造方法
    public function __construct()
    {
        return &#39;抽象类构造器,实例化时自动调用<br>&#39;;
    }
    
}

//Zur Vereinfachung des Unterrichts werden die abstrakte Klasse und ihre Unterklassen alle in einer Klassendatei geschrieben

/ /In der tatsächlichen Entwicklung sollte für jede Klasse eine unabhängige Klassendatei erstellt werden

class Apple extends Fruits
{
    protected $name = &#39;苹果&#39;;
    
    //声明为静态属性
//    public static $name = &#39;苹果&#39;;
    
    public  function eat()
    {
        return $this->name.&#39;可以直接生吃&#39;;
    }
    
    //子类构造方法
    public function __construct()
    {
        echo parent::__construct();
        
    }
    //实现抽象类中的抽象静态方法eat()
//    public static function eat()
//    {
//        return self::$name.&#39;可以直接生吃&#39;;
//    }
}
$apple = new Apple;
echo $apple->eat();

//Es war vorher eine abstrakte statische Klasse, keine Instanziierung erforderlich, Sie können die Klasse verwenden, um direkt auf

//echo Apple::eat();
zuzugreifen

Das obige ist der detaillierte Inhalt vonabstrakte Klasse in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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