Heim Backend-Entwicklung PHP-Tutorial In PHP überladen Unterklassen die Methoden der übergeordneten Klasse (parent::method name)

In PHP überladen Unterklassen die Methoden der übergeordneten Klasse (parent::method name)

Jun 02, 2018 am 10:08 AM
parent php

In diesem Artikel wird hauptsächlich der relevante Inhalt von Unterklassen vorgestellt, die übergeordnete Klassenmethoden (parent::method name) in PHP überladen. Alle werden zu Ihrer Information mit allen geteilt.

Überladung kann nicht in PHP-Funktionen mit derselben definiert werden name umfassen auch Methoden mit demselben Namen, die nicht in derselben Klasse definiert werden können, sodass es nicht zu einer Methodenüberladung kommt. Methoden mit demselben Namen wie die der übergeordneten Klasse können nur in der Unterklasse definiert werden, da die Methoden der übergeordneten Klasse bereits in der Unterklasse vorhanden sind, sodass die von der übergeordneten Klasse geerbten Methoden in der Unterklasse überschrieben werden können.

Die Methode zum Überschreiben der übergeordneten Klasse in einer Unterklasse besteht darin, die von der übergeordneten Klasse in der Unterklasse geerbten Methoden zu überschreiben. Die Methoden in der übergeordneten Klasse können nicht direkt verwendet werden, wenn sie von geerbt werden die Unterklasse? Warum müssen wir es überladen? Denn es gibt einige Situationen, die wir abdecken müssen. Beispielsweise gibt es eine Klasse „Bird“, in der die allgemeine Methode „Fly“ für Vögel definiert ist. Wenn Sie die Klasse „Strauß“ als Unterklasse verwenden, wird die Methode „Fliegen“ geerbt. Sobald jedoch die Methode „Fliegen“ in der Klasse „Strauß“ aufgerufen wird, fliegt der Strauß davon. Obwohl Strauße nicht fliegen können, weisen andere Merkmale die Eigenschaften von „Vögeln“ auf. Daher können Sie bei der Deklaration der Klasse „Strauß“ immer noch die Klasse „Vogel“ erben, müssen jedoch die Klasse „Vogel“ zur Klasse „Strauß“ hinzufügen Um die von der Klasse geerbte „fliegende“ Methode neu zu schreiben, müssen Sie die Methode in der übergeordneten Klasse in der Unterklasse überladen.

Im folgenden Beispiel verfügt die deklarierte Person-Klasse über eine „Speak“-Methode. Die Student-Klasse kann die „Speak“-Methode direkt verwenden, nachdem sie die Person-Klasse geerbt hat. Allerdings kann die „speak“-Methode in der Person-Klasse nur ihre eigenen Mitgliedsattribute sprechen, während die Student-Klasse die Person-Klasse erweitert und mehrere neue Mitgliedsattribute hinzufügt. Der Code lautet wie folgt:

<?php
class Person{
protected $name;
protected $sex;
protected $Wage;
function __construct($name="",$sex="男",$age=1){
$this ->name = $name;
$this ->sex = $sex;
$this ->age = $age;
}
//在人类中声明一个通用的说话方法,介绍一下自己
function say(){
echo "我的名字:".$this-> name.",性别:".$this ->sex.",年龄:".$this ->age."。<br>";
}
}
//声明一个学生类,使用extends关键字扩展(继承)person类
class Student extends Person {
private $school; //在学生类中声明一个所在学校school的成员属性
//覆盖父类中的构造方法,在参数列表中添加一个学校属性,用来创建对象并初始化成员属性
function __construct($name="",$sex="男",$age=1,$school=""){
$this ->name = $name;
$this ->sex = $sex;
$this ->age = $age;
$this ->school = $school;
}
function study(){
echo $this ->name."正在".$this ->school."学习<br>";
}
//定义一个和父类中同名的方法,将父类中的说话方法覆盖并重写,多说出所在的学校名称
function say(){
echo "我的名字:".$this ->name.",性别:".$this ->sex.",年龄:".$this ->age.",在".$this ->school."学校上学<br>";
}
}
$student= new Student("张三","男",20,"edu"); //创建一个学生对象,并传给一个学校名称参数
$student -> say(); //调用学生类中覆盖父类的说话方法
?>
Nach dem Login kopieren

Das Ausgabeergebnis nach dem Ausführen des geänderten Programms ist:

Mein Name ist: Zhang San, Geschlecht: männlich, mein Alter ist: 20, ich studiere an einer Edu-Schule

In PHP, vorausgesetzt hat die Funktion, die überschriebene Methode der übergeordneten Klasse in der überladenen Methode der Unterklasse aufzurufen. Auf diese Weise können Sie in den von der Unterklasse überschriebenen Methoden weiterhin die von der übergeordneten Klasse geerbten und überschriebenen Methoden verwenden und dann nach Bedarf weitere neue Funktionen hinzufügen. Das Format des Aufrufs besteht darin, „übergeordnet: Methodenname“ zu verwenden, um die überschriebene Methode in der übergeordneten Klasse in der überladenen Methode der Unterklasse aufzurufen. Ändern Sie den Code im obigen Beispiel, verwenden Sie „parent::__construct()“ im überschriebenen Konstruktor der Unterklasse, um den überschriebenen Konstruktor der übergeordneten Klasse aufzurufen, und fügen Sie ein zusätzliches Mitgliedsattribut für das neu erweiterte Mitglied der Unterklasse hinzu Code. Verwenden Sie „parent::say()“ in der in der Unterklasse überschriebenen Methode say(), um die überschriebene Methode say() in der übergeordneten Klasse aufzurufen, und fügen Sie dann die Funktion zum Ausgeben der Mitgliedsattribute der Unterklasse hinzu.

Der Code lautet wie folgt:

<?php
class Person{
protected $name;
protected $sex;
protected $Wage;
function __construct($name="",$sex="男",$age=1){
$this ->name = $name;
$this ->sex = $sex;
$this ->age = $age;
}
//在人类中声明一个通用的说话方法,介绍一下自己
function say(){
echo "我的名字:".$this-> name.",性别:".$this ->sex.",年龄:".$this ->age."。<br>";
}
}
//声明一个学生类,使用extends关键字扩展(继承)person类
class Student extends Person {
private $school; //在学生类中声明一个所在学校school的成员属性
//覆盖父类中的构造方法,在参数列表中添加一个学校属性,用来创建对象并初始化成员属性
function __construct($name="",$sex="男",$age=1,$school=""){
//调用父类中被覆盖的构造方法,为从父类中集成过来额出行赋初值
parent::__construct($name,$sex,$age);
$this ->school = $school;
}
function study(){
echo $this ->name."正在".$this ->school."学习<br>";
}
//定义一个和父类中同名的方法,将父类中的说话方法覆盖并重写,多说出所在的学校名称
function say(){
parent::say(); //调用父类中被本方法覆盖掉的方法
echo "在".$this ->school."学校上学<br>";
}
}
$student= new Student("张三","男",20,"edu"); //创建一个学生对象,并传给一个学校名称参数
$student -> say(); //调用学生类中覆盖父类的说话方法
?>
Nach dem Login kopieren

Das Ausgabeergebnis des obigen Beispiels ist das gleiche wie im vorherigen Beispiel, jedoch In diesem Fall ist es in diesem Beispiel viel einfacher, die überschriebene Methode in der übergeordneten Klasse direkt in der Unterklasse aufzurufen. Wenn eine Unterklasse eine Methode einer übergeordneten Klasse überschreibt, muss außerdem beachtet werden, dass die Zugriffsberechtigungen der überschriebenen Methoden in der Unterklasse nicht niedriger sein dürfen als die Zugriffsberechtigungen der überschriebenen Methoden der übergeordneten Klasse. Wenn beispielsweise die Zugriffsberechtigung in der übergeordneten Klasse geschützt ist, muss die Berechtigung der überschriebenen Methode in der untergeordneten Klasse geschützt oder öffentlich sein.

Verwandte Empfehlungen:

Methoden zum Überladen von Unterklassen in PHP, PHP-Annotationsmethoden, PHP-Timing-Methoden, PHP-Systemautorisierer

Das obige ist der detaillierte Inhalt vonIn PHP überladen Unterklassen die Methoden der übergeordneten Klasse (parent::method name). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

CakePHP-Projektkonfiguration CakePHP-Projektkonfiguration Sep 10, 2024 pm 05:25 PM

In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

CakePHP arbeitet mit Datenbank CakePHP arbeitet mit Datenbank Sep 10, 2024 pm 05:25 PM

Das Arbeiten mit der Datenbank in CakePHP ist sehr einfach. In diesem Kapitel werden wir die CRUD-Operationen (Erstellen, Lesen, Aktualisieren, Löschen) verstehen.

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

CakePHP-Routing CakePHP-Routing Sep 10, 2024 pm 05:25 PM

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

CakePHP erstellt Validatoren CakePHP erstellt Validatoren Sep 10, 2024 pm 05:26 PM

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.

See all articles