Heim >Backend-Entwicklung >PHP-Problem >Was sind abstrakte PHP-Klassen und abstrakte Methoden?

Was sind abstrakte PHP-Klassen und abstrakte Methoden?

青灯夜游
青灯夜游Original
2021-07-15 19:22:252635Durchsuche

Abstrakte Methode bezieht sich auf eine Methode ohne Methodenkörper. Der sogenannte Methodenkörper ohne Methode bedeutet, dass bei der Deklaration einer Methode keine geschweiften Klammern „{}“ und deren Inhalt vorhanden sind, sondern direkt nach der Methode ein Semikolon hinzugefügt wird Name. Solange eine Methode in einer Klasse eine abstrakte Methode ist, muss die Klasse als abstrakte Klasse definiert und mit dem Schlüsselwort „abstract“ geändert werden.

Was sind abstrakte PHP-Klassen und abstrakte Methoden?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP Version 7.1, DELL G3-Computer

In objektorientierten Sprachen kann eine Klasse eine oder mehrere Unterklassen haben, und jede Klasse sollte mindestens eine öffentliche haben Methoden dienen als Einstiegspunkte für externen Code, um darauf zuzugreifen. Abstrakte Klassen und abstrakte Methoden sind ein Konzept, das in PHP5 eingeführt wurde, hauptsächlich um die Klassenvererbung zu erleichtern.

1. Abstrakte Methode

Abstrakte Methode ist eine Methode ohne Methodenkörper. Der sogenannte „Kein Methodenkörper“ bedeutet, dass bei der Deklaration der Methode keine geschweiften Klammern{ } und der Inhalt darin enthalten sind, sondern direkt nach dem hinzugefügt werden Methodenname. Ende mit Semikolon. Verwenden Sie außerdem das Schlüsselwort „abstract“, wenn Sie eine abstrakte Methode deklarieren. Das Format lautet wie folgt:

abstract 访问权限修饰符 function 方法名1(参数列表);
abstract 访问权限修饰符 function 方法名2(参数列表);

2. Abstrakte Klasse

Solange eine Methode in einer Klasse eine abstrakte Methode ist, muss diese Klasse als abstrakte Klasse definiert werden und die abstrakte Klasse muss ebenfalls geändert werden Mit dem Schlüsselwort „abstract“ können abstrakte Klassen auch Mitgliedsmethoden und Mitgliedseigenschaften enthalten, die keine abstrakten Methoden sind. Die Zugriffsrechte können jedoch nicht privat sein (mit dem Schlüsselwort „private“ geändert werden), da die Methoden in der abstrakten Klasse von geerbt werden müssen Unterklassen.

Das folgende Beispiel zeigt, wie man eine abstrakte Klasse definiert. Der Code lautet wie folgt:

abstract class 类名{
    public $name;
    abstract 访问权限修饰符 function 方法名1();
    abstract 访问权限修饰符 function 方法名2();
    访问权限修饰符 function 方法名3(){
        ... ... ;
    }
}

Eine abstrakte Klasse ist wie eine „halbfertige“ Klasse. Die abstrakte Klasse enthält abstrakte Methoden, die nicht implementiert wurden Die Klasse kann nicht instanziiert werden, das Objekt kann nicht erstellt und nicht direkt verwendet werden. Welche Rolle spielt die Verwendung einer abstrakten Klasse, da es sich bei einer abstrakten Klasse um eine „halbfertige“ Klasse handelt?

Sie können sich eine abstrakte Klasse so vorstellen, dass sie eine öffentliche Schnittstelle für ihre Unterklassen definiert und ihre Operationen (vielleicht einige oder alle) zur Implementierung an die Unterklassen übergibt. Abstrakte Klassen werden als Vorlagen für das Überladen von Unterklassen verwendet. Das Definieren einer abstrakten Klasse entspricht dem Definieren einer Spezifikation, die die Einhaltung von Unterklassen erfordert.

Wenn eine Unterklasse eine abstrakte Klasse erbt, muss sie die abstrakten Methoden in der abstrakten Klasse entsprechend den eigenen Anforderungen der Unterklasse implementieren. Die Unterklasse muss alle abstrakten Methoden in der übergeordneten Klasse implementieren. Andernfalls gibt es in der Unterklasse immer noch abstrakte Methoden, sodass es sich weiterhin um eine abstrakte Klasse handelt und nicht als Objekt instanziiert werden kann.

【Beispiel】 Definieren Sie eine abstrakte Klasse und verwenden Sie dann eine andere Klasse, um diese abstrakte Klasse zu erben und die abstrakten Methoden in der abstrakten Klasse zu implementieren.

<?php
    abstract class Website{
        public $name = &#39;PHP中文网<br>&#39;;
        public $url = &#39;https://www.php.cn/<br>&#39;;
        abstract function title();
        abstract function output();
    }
    class Demo extends Website{
        public function title(){
            echo &#39;抽象类和抽象方法&#39;;
        }
        public function output(){
            echo $this -> name.$this -> url;
        }
    }
    $obj = new Demo();
    $obj -> output();
    $obj -> title();
?>

Die laufenden Ergebnisse lauten wie folgt:

PHP中文网
https://www.php.cn/
抽象类和抽象方法

Darüber hinaus ist zu beachten, dass die Zugriffsrechte von Mitgliedsmethoden in Unterklassen mit den Zugriffsrechten abstrakter Methoden identisch sein können, jedoch nicht strenger sein können. Darüber hinaus sollte die Anzahl der Parameter der Mitgliedsmethode in der Unterklasse mit der Anzahl der Parameter der abstrakten Methode übereinstimmen.

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas sind abstrakte PHP-Klassen und abstrakte Methoden?. 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