Heim >Backend-Entwicklung >PHP-Tutorial >Detaillierte Erklärung der abstrakten PHP-Klassen

Detaillierte Erklärung der abstrakten PHP-Klassen

小云云
小云云Original
2018-03-15 10:09:521888Durchsuche

PHP 5 unterstützt abstrakte Klassen und abstrakte Methoden. Als abstrakt definierte Klassen können nicht instanziiert werden. Jede Klasse muss als abstrakt deklariert werden, wenn mindestens eine Methode darin als abstrakt deklariert ist. Eine als abstrakt definierte Methode deklariert nur ihre aufrufende Methode (Parameter) und kann nicht ihre spezifische Funktionsimplementierung definieren.

Hinweis:

  1. Beim Erben einer abstrakten Klasse muss die Unterklasse alle abstrakten Methoden in der übergeordneten Klasse definieren; Darüber hinaus muss die Zugriffskontrolle dieser Methoden dieselbe (oder entspannter) wie in der übergeordneten Klasse sein.

  2. Die aufrufende Methode muss übereinstimmen, d. h. Art und Anzahl der erforderlichen Parameter müssen konsistent sein.

  3. Beispiel:

Ergebnis:

<?phpabstract class AbstractClass{
    // 我们的抽象方法仅需要定义需要的参数
    abstract protected function prefixName($name);}class ConcreteClass extends AbstractClass{

    // 我们的子类可以定义父类签名中不存在的可选参数
    // 该访问控制只能是公有的(public)或受保护(protected)的
    public function prefixName($name, $separator = ".") {
        if ($name == "Pacman") {            $prefix = "Mr";
        } elseif ($name == "Pacwoman") {            $prefix = "Mrs";
        } else {            $prefix = "";
        }        return "{$prefix}{$separator} {$name}";
    }
}$class = new ConcreteClass;echo $class->prefixName("Pacman"), "\n";echo $class->prefixName("Pacwoman"), "\n";?>
Analyse:

Mr. Pacman
Mrs. Pacwoman
Obwohl die Unterklasse definiert ist Ein optionaler Parameter, der nicht in der Deklaration der abstrakten Methode der übergeordneten Klasse enthalten ist, aber nicht im Widerspruch zum dritten Punkt im Hinweis steht

Verwandte Empfehlungen:

PHP-Abstraktklasse Detaillierte Erläuterung der Implementierungsmethode

Detaillierte Erläuterung der Unterschiede zwischen PHP-Abstraktklassen und -Schnittstellen und Auswahl von Beispielen

Detaillierte Erläuterung der Funktionsbeispiele für abstrakte PHP-Klassen

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung der abstrakten PHP-Klassen. 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