Abstrakte Klasse in PHP

WBOY
Freigeben: 2024-08-29 13:05:57
Original
1157 Leute haben es durchsucht

Wie abstrakte Klassen gibt es auch abstrakte Methoden. Wir deklarieren sowohl die abstrakte Methode als auch die abstrakte Klasse mit dem Schlüsselwort abstract. In diesem Thema lernen wir die Abstract-Klasse in PHP kennen.

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Gemäß dem Konzept der Vererbung wird die übergeordnete Klasse durch die abgeleitete Klasse erweitert. Die Methoden in der übergeordneten Klasse werden von den abgeleiteten Klassen implementiert oder definiert. PHP macht es möglich, dass die übergeordnete Klasse spezifischer wird, indem abstrakte Klassen und abstrakte Methoden verwendet werden.

Die abstrakte Klasse enthält zwingend eine Methode als abstrakt. Außerdem kann diese abstrakte Klasse auch andere nicht abstrakte Methoden haben.

Syntax

Syntax der abstrakten Klasse mit einer Methode als Zusammenfassung.

abstract class DemoAbstractClass() {
abstract public function DemoAbstractMethod();
}
Nach dem Login kopieren

Abstrakte Methode

abstract public function DemoAbstractMethod();
Nach dem Login kopieren

Wie funktioniert die abstrakte Klasse in PHP?

In diesem Artikel erfahren Sie, wie die abstrakte Klasse funktioniert, und es geht so.

Da wir nun wissen, dass eine abstrakte Klasse zwingend eine Methode als abstrakt hat.

Es kann auch nicht-abstrakte Methoden geben. Die abstrakte Methode hat nur die Deklaration in der Basisklasse. Das bedeutet, dass es nur Namen und Parameter ohne anderen Code enthält.

Um die Methode weiter zu definieren und mit der Methode zu arbeiten, muss diese Methode in der abgeleiteten Klasse implementiert werden, die die Basisklasse erweitert. Denken Sie außerdem daran, dass diese abstrakte Klasse nicht zum Erstellen von Objekten instanziiert werden kann, die von der Basisklasse abgeleitete Klasse jedoch zum Erstellen von Objekten instanziiert werden kann.

Beispiele für Abstract-Klassen in PHP

Hier sind einige Beispiele der Abstract-Klasse in PHP unten aufgeführt

Beispiel #1

Im folgenden Programm erfahren wir, was passiert, wenn ein Objekt einer abstrakten Klasse erstellt wird.

Abstrakte Klasse Student wird erstellt und enthält eine abstrakte Methode favoriteSubject() der Student-Klasse und zwei weitere nicht abstrakte Methoden wie setRollNo() und getRollNO(), die die Rolle des Schülers festlegen und abrufen, was durch Erstellen des Objekts von erfolgt die abgeleitete Klasse (Erweiterung der Basisklasse).

Code:

<?php
abstract class Student {
protected $m;
public function setRollNo($rollno) {
return $this->m = $rollno;
}
public function getRollNo() {
return $this->m;
}
abstract public function favouriteSubject()
}
class Radha extends Student {
public function favouriteSubject() {
return "English";
}
}
$obj = new Student;    //this statement throws error as we cannot create object of class Student as it is defined as abstract
$obj = new Radha;  //this statement does not throws error and executes correctly
$obj->favouriteSubject();
?>
Nach dem Login kopieren

Ausgabe:

Abstrakte Klasse in PHP

Beispiel #2

Dieses Beispiel wird im Folgenden Schritt für Schritt erklärt, nachdem das Programm zusammen mit dem Code aus diesem Beispiel ausgegeben wurde.

Code 

abstract class Student{
protected $m;
abstract public function calulatePercentage();
public function setMarks($marks) {
return $this->m = $marks;
}
public function favoriteSubject() {
return 'Favorite subject is English';
}
}
class Ram extends Student{
public function calulatePercentage(){
$percentage = ($this->m /100 ) * 100;
return 'The percentage of Ram is '.$percentage. '%' .'<br>';
}
}
class Sherry extends Student{
public function calulatePercentage(){
$percentage = ($this->m /100 ) * 100;
return 'The percentage of Sherry is '.$percentage. '%' .'<br>';
}
public function favoriteSubject() {
return 'Favorite subject is Maths';
}
}
$ram = new Ram();
$ram->setMarks(92);
echo $ram->calulatePercentage();
echo $ram->favoriteSubject();
echo '<hr>';
$sherry = new Sherry();
$sherry->setMarks(97);
echo $sherry->calulatePercentage();
echo $sherry->favoriteSubject();
Nach dem Login kopieren

Ausgabe:

Abstrakte Klasse in PHP

Eine abstrakte Klasse kann als Gerüst für abgeleitete Klassen bezeichnet werden. Im obigen Beispiel deklarieren wir die abstrakte Klasse Student und eine Eigenschaft namens $m für die Noten des Studenten.

Erläuterung von Beispiel #2

abstract class Student {
abstract public function calulatePercentage();
}
Nach dem Login kopieren

Eine abstrakte Klasse kann als Gerüst für abgeleitete Klassen bezeichnet werden. In diesem Beispiel deklarieren wir die abstrakte Klasse und Methoden zusammen mit anderen Methoden.

Im obigen Beispiel haben wir die abstrakte Klasse „Schüler“ mit abstrakten Methoden deklariert, um den Prozentsatz des Schülers zusammen mit den vergebenen Noten zu berechnen.

Außerdem haben wir Methoden entwickelt (die nicht abstrakt sind), um die Noten des Schülers festzulegen und das Lieblingsfach des Schülers zu ermitteln.

abstract class Student{
abstract public function calulatePercentage();
public function setMarks($marks) {
return $this->m = $marks;
}
public function favoriteSubject() {
return 'Favorite subject is English';
}
}
Nach dem Login kopieren

Um Objekte der abstrakten Klasse Student zu erstellen, müssen wir die Klasse Student erweitern und daraus abgeleitete Klassen erstellen. Die Basisklasse verwendet Extends-Schlüsselwörter, um eine Erweiterung der Basisklasse zu ermöglichen. Sobald die Klasse erweitert ist, können wir nun die Methoden der Basisklasse verwenden.

Im obigen Beispiel ist Ram die abgeleitete Klasse, die die Basisklasse Student erweitert. Es verwendet das Schlüsselwort „extends“. Jetzt haben wir die Methode „percent()“ berechnet, um den Prozentsatz der von Ram erhaltenen Noten zu berechnen.

class Ram extends Student{
public function calulatePercentage(){
$percentage = ($this->m /100 ) * 100;
return 'The percentage of Ram is '.$percentage. '%' .'<br>';
}
}
Nach dem Login kopieren

Deklarieren einer weiteren Klasse, die die Basisklasse „Student“ erweitert, damit wir mehr lernen können.

Im obigen Beispiel haben wir Sherry als abgeleitete Klasse erstellt, die aus der Basisklasse Student erstellt wurde. Dabei wird das Schlüsselwort „extended“ verwendet. Es hat zwei Funktionen: abstrakt, die calulatePercentage()-Methode in der Basisklasse, die andere ist die favoriteSubject()-Methode, die nicht abstrakt ist.

class Sherry extends Student{
public function calulatePercentage(){
$percentage = ($this->m /100 ) * 100;
return 'The percentage of Sherry is '.$percentage. '%' .'<br>';
}
public function favoriteSubject() {
return 'Favorite subject is Maths';
}
}
Nach dem Login kopieren

Jetzt erstellen wir das Objekt der Basisklasse und das Objekt der abgeleiteten Klasse, was einen Fehler auslöst. Da wir nicht instanziieren können, wird die Klasse als abstrakt deklariert.

Somit kann nur das Objekt der abgeleiteten Klasse erstellt werden. Sobald dies erledigt ist, rufen wir mit diesem Objekt die abstrakte Methode und nicht die abstrakte Methode auf, wie unten gezeigt.

$ram = new Ram();
$ram->setMarks(92);
echo $ram->calculatePercentage();
echo $ram->favoriteSubject();
echo '<hr>';
$sherry = new Sherry();
$sherry->setMarks(97);
echo $sherry->calculatePercentage();
echo $sherry->favoriteSubject();
Nach dem Login kopieren

Conclusion

In this article, I hope you learned about how the abstract class is declared, how it works, how it is extended using extends keywords, how the abstract method is declared in the base class and how it is implemented in the derived class. The examples explained will help you learn the concept at ease. I hope it was prepared to be useful enough to grasp and practice more.

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!

Verwandte Etiketten:
php
Quelle:php
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage