Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Abschlussklasse

PHP-Abschlussklasse

WBOY
WBOYOriginal
2024-08-29 13:06:03941Durchsuche

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 Probetests

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Syntax:

final class Pavan{ }
final public function set_bike(){}

Wie funktioniert die PHP-Abschlussklasse?

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.

Beispiele für die PHP-Abschlussklasse

Es folgen die unten aufgeführten Beispiele:

Beispiel #1

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:

PHP-Abschlussklasse

Beispiel #2

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:

PHP-Abschlussklasse

Beispiel #3

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:

PHP-Abschlussklasse

Beispiel #4

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:

PHP-Abschlussklasse

Vorteile

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!

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
Vorheriger Artikel:Abstrakte Klasse in PHPNächster Artikel:Abstrakte Klasse in PHP