Heim > Artikel > Backend-Entwicklung > PHP-Abschlussklasse
Die letzte PHP-Klasse ist eine Klasse, die das Überschreiben einer Methode der untergeordneten Klassen allein durch das letzte Präfix mit der Definition verhindert. Das bedeutet, dass das Überschreiben der Methode verhindert wird, wenn wir eine Methode mit dem endgültigen Präfix definieren. Normalerweise ermöglicht die Vererbung des PHP-OOPs-Konzepts eine enorme Flexibilität innerhalb der Klassenhierarchie. Sie können eine oder mehrere Unterklassen erstellen, die zur Erweiterung der Funktionalität der Basisklasse verwendet werden. Das OOPs-Konzept von PHP bietet jedoch die Möglichkeit, nicht erweiterbare Klassen zu erstellen. Solche Klassen werden als Abschlussklasse/Abschlussklassen bezeichnet.
WERBUNG Beliebter Kurs in dieser Kategorie PHP-ENTWICKLER - Spezialisierung | 8-Kurs-Reihe | 3 ProbetestsStarten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Syntax:
final class Pavan{ }
final public function set_bike(){}
PHP Final Class funktioniert basierend auf der Deklaration, indem einfach das Schlüsselwort FINAL vor dem Klassenwort hinzugefügt wird. Final Class funktioniert ohne Erweiterung der Klasse. Die untergeordnete Klasse kann die endgültigen Methoden nicht überschreiben. Normale Klassenvariablen können nicht zur Deklaration als endgültig verwendet werden. Die endgültige PHP-Klasse oder -Methode kann nicht wie die anderen normalen Klassen erweitert werden. Wenn die Final-Klasse mit einer anderen normalen Klasse erweitert wird, führt die Final-Klasse dazu, dass PHP in der Browserausgabe FATAL ERROR zurückgibt. Ebenso die ENDGÜLTIGE METHODE.
Es folgen die unten aufgeführten Beispiele:
Hier wird eine Klasse mit dem Schlüsselwort final vor der Klasse erstellt. Diese Abschlussklasse „Automobil1“ kann nicht erweitert werden. Innerhalb der finalen Klasse werden finale Methoden/Funktionen erstellt. Dann wird die normale Klasse „Bmwcar1“ mit einer Methode/Funktion erstellt und dann die endgültige Methode/Funktion innerhalb der Absatz-Tags erstellt. Dann wird eine Klasse „Tata1“ erstellt, um „Bmwcar1“ zu erweitern, die über die normale Funktion/Methode „display()“ verfügt, aber die Methode „price()“ wird nicht in der Klasse „Tata1“ erstellt, da deren Aufruf aufgrund des letzten Schlüsselworts zu einem schwerwiegenden Fehler führt . Es ist nicht erweiterbar. Anschließend wird das Objekt „$bmwcar1“ erstellt/erstellt. Der Aufruf der display()-Methoden und der finalen Methode price() erfolgt über die Klassen „Bmwcar1“ und „tata1“.
Code:
<?php final class Automobile1{ final public function set_color1(){ } final public function show1(){ } } class Bmwcar1{ public function display1(){ echo "This is the bmwcar1 class \n";} final public function price1(){echo "This is the bmwcar1 class's final price method \n";} } class Tata1 extends Bmwcar1{ public function display1(){ echo "This is tata1 class \n";} } $bmwcar1 = new Bmwcar1(); $tata1 = new Tata1(); $bmwcar1->display1(); $bmwcar1->price1(); $tata1->display1(); $tata1->price1(); ?>
Ausgabe:
Hier wird die Klasse „A1“ mit einem FINAL-Schlüsselwort erstellt. Dann wird die normale Funktion „show1()“ mit zwei Variablen erstellt. Darin wird die Summe der Variablen in der Variablen $sum1 gespeichert. Dann wird die Echofunktion verwendet, um die Summe der Variablenwerte auszugeben. Dann wird die Klasse „B1“ erstellt, um die Klasse „A1“ zu erweitern. Innerhalb der Klasse „B1“ wird die Multiplikation der Variablen durchgeführt und in einer $multi1-Variablen gespeichert. Das Multiplikationsergebnis wird mit der Echo-Funktionalität gedruckt, aber hier erweitern wir die endgültige Klasse „A1“ um die normale Klasse „B1“. Hier erweitern wir die FINAL-Klasse/-Methoden. Es wird FATAL ERROR zurückgegeben, weil wir eine FINAL-Klasse erweitern.
Code:
<?php final Class A1 { function show1($x1,$y1) { $sum1=$x1+$y1; echo "Sum of the given no.s = ".$sum1; } } class B1 extends A1 { function show($x1,$y1) { $multi1=$x1*$y1; echo "The Multiplication of the given no.s = ".$multi1; } } $obj1= new B1(); $obj1->show1(1001,1001); ?>
Ausgabe:
Hier wird eine normale Klasse „C1“ mit der Funktion e($xx1) erstellt, dann wird eine Klasse „D1“ erstellt, um die Klasse „C1“ um die Verwendung von „C1“-Parametern zu erweitern. Die Klasse „D1“ erbt also die Eigenschaften der Klasse „C1“ und enthält auch die Eigenschaften der Klasse „D1“. Bis hierhin ist alles richtig. Dann wird eine Klasse „A1“ mit der endgültigen Funktion/Methode darin mit den Variablen „x1“ und „y1“ erstellt, die die Summe der Variablen berechnet. Anschließend wird die Klasse „B1“ erstellt, um die Klasse „A1“ zu erweitern. Letzte Klassen und Methoden sind jedoch nicht erweiterbar. Wenn es versucht wird, tritt ein SCHWERWIEGENDER FEHLER auf.
Code:
<?php class C1 { function e($xx1){ echo 'The value of xx1 variable value'.$xx1; } } class D1 extends C1 { function e($xx1){ $f=2*$xx1; echo 'The double value of f (xx1)'.$f; } } class A1 { final function show($x1,$y1) { $sum1=$x1+$y1; echo "Sum of given no=".$sum1; } } class B1 extends A1 { function show($x1,$y1) { $mult1=$x1*$y1; echo "Multiplication of given no=".$mult1; } } $obj=new D1(); $obj->e(13); $obj= new B1(); $obj->show(100,100); ?>
Ausgabe:
Im folgenden Beispiel wird zunächst eine normale Klasse erstellt und dann darin eine endgültige Methode mit den beiden Variablen erstellt, um die Summe der beiden Variablenwerte zu berechnen. Anschließend wird darin eine neue Methode/Funktion erstellt Die normale Klasse multipliziert die beiden Variablenwerte und gibt das Ergebnis zurück. Hier wird nur eine endgültige Methode erstellt und aufgerufen, ohne dass eine Erweiterung erfolgt, sodass kein Fehler auftritt. Die Summe der Variablen und auch die Multiplikation der Variablen werden gedruckt.
Code:
<?php class BaseClassone{ final function calculateone($val11,$val12){ $sum1 = $val11+$val12; echo "Sum of the given nums = ".$sum1; } function showone($x1,$y1){ $multip1=$x1*$y1; echo "Multiplication of the given nums = ".$multip1."\n"; } } $obj= new BaseClassone(); $obj->showone(12,12); $obj->calculateone(10,10); ?>
Ausgabe:
Das PHP Final Class-Konzept ist einzigartig und nicht erweiterbar wie die normalen Klassen. Ebenso wie die Final-Klassen sind auch Final-Methoden nicht auf eindeutige Weise erweiterbar. Das PHP-Final-Class-Konzept verhindert eine massive Vererbungsfunktionalität und fördert auch die Komposition. Alle öffentlichen APIs der Final Class sind Teil der Schnittstelle/Schnittstellen. Es hilft bei der Kapselung. Die letzte Klasse/Methode verhindert, dass die Klasse/Methode die untergeordneten Klassen/Methoden überschreibt. PHP Final Class(s) verhindern eine Ausnutzung. Auch wenn die Abschlussklasse(n) nicht verlängert werden können, sind diese Abschlussklassen unter bestimmten Bedingungen verlängerbar. Es ist so, als ob die Final-Klasse eine Unterklasse wird oder werden kann, aber nicht in eine Superklasse umgewandelt werden kann.
Das endgültige PHP-Schlüsselwort kann sogar direkt vor oder direkt nach dem Zugriffsspezifizierer platziert werden. Die endgültige(n) PHP-Methode(n) sollten außerdem keinen spezifischen/spezifizierten Rückgabetyp/-typen und den/die Methodennamen haben.
Das obige ist der detaillierte Inhalt vonPHP-Abschlussklasse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!