Detaillierte Erläuterung der PHP-Klassenkapselung und der Verwendung der Vererbung

伊谢尔伦
Freigeben: 2023-03-12 06:34:02
Original
1379 Leute haben es durchsucht

Klasse ist ein wichtiges Konzept in Objektorientiert, und Kapselung und Vererbung sind wichtige Merkmale der Objektorientierung. In diesem Artikel konzentrieren wir uns auf die beiden Merkmale Kapselung und Vererbung und geben einige Beispiele als Referenz.

Kapseln Sie

Kapseln Sie Mitgliedsmethoden und Mitgliedsattribute in Klassen und verbergen Sie die Implementierungsdetails von Attributen und Methoden , By Durch die Einschränkung der Zugriffsrechte von Klassenmitgliedern wie öffentlich, geschützt, privat usw. sind die Daten intern geschützt und können nur über autorisierte Mitgliedsmethoden bearbeitet werden, und die Mitglieder werden so weit wie möglich gekapselt.

Öffentlich: Auf eine Methode oder Eigenschaft kann in jedem Bereich zugegriffen werden. Wenn für eine Eigenschaft oder Methode kein Zugriffsmodifikator angegeben ist, ist sie standardmäßig öffentlich.
geschützt: Auf diese Klasse und Unterklassen kann zugegriffen werden, externe Objekte können jedoch nicht aufgerufen werden.
private: kann nur in dieser Klasse aufgerufen werden und kann nicht von Unterklassen oder externen Objekten aufgerufen werden. Als privat gekennzeichnete Methoden oder Attribute können in geerbten Klassen neu definiert werden, und jede Klasse kann nur ihre eigenen definierten privaten Methoden sehen.

Diese drei Modifikatoren sollten hinsichtlich des Umfangs von groß nach klein sortiert werden: öffentlich → geschützt → privat. Der Grund, warum sie im Geltungsbereich liegen, liegt darin, dass die Klasse einige Eigenschaften und Methoden kapselt bestimmt die „Sichtbarkeit“ der Daten, sodass wir die definierten Eigenschaften und Methoden nicht nach Belieben außerhalb der Klasse ändern, sondern nur aufrufen können. Dies ist der Vorteil der Kapselung und verbessert auch die Sicherheit.
Wir geben ein Codebeispiel:

 class myClass{ 
  public $public="Public";    //public属性
  protected $protected="Protected"; //protected属性
  private $private="Private";   //private 属性
  function say_Hello() {    //public属性 
  //只是举例说明,自行添加内容
  } 
 
 $obj=new myClass(); 
 echo $obj->public; 
 //echo $obj->protected; 
 //echo $obj->private;
Nach dem Login kopieren

Durch die Ausführung des obigen Beispiels erhalten wir ein „Public“, aber wenn Sie //echo $obj->private; Wenn der Kommentar entfernt wird, erhalten Sie die folgende Fehlermeldung:

Schwerwiegender Fehler: Auf die geschützte Eigenschaft myClass::$protected in E:apachehtdocsexamplefile.php in Zeile 13 kann nicht zugegriffen werden.

Sie können sehen, dass wir nicht nach Belieben auf die Attributdefinitionen einer Klasse zugreifen können. Wir wissen nicht, welche Mitglieder sich „außerhalb“ dieser Klasse befinden, da diese Mitglieder möglicherweise nicht für andere Klassen verfügbar sind. Wenn wir auf als „privat“ definierte Attribute zugreifen oder diese ändern müssen, können wir natürlich auch die von PHP bereitgestellten Systemmethoden verwenden: _get() und _set().

Vererbung

Sie können eine Klasse erben lassen und die Mitgliedseigenschaften und -methoden einer anderen vorhandenen Klasse verwenden. Die geerbte Klasse wird als übergeordnete Klasse oder Basisklasse bezeichnet Klasse ist eine Unterklasse. Die Vererbungsbeziehung wird über das Schlüsselwort „extends“ implementiert. Um eine Erbschaft zu erhalten, muss man im Allgemeinen eine „Wurzel“ haben. Man kann sich vorstellen, dass, wenn man in der Zukunft einen Sohn oder eine Tochter zur Welt bringt, diese „Dinge (Eigenschaften und Methoden)“ bekommen. von Ihnen, so dass Ihre „Nachkommen“ diejenigen sind, die einige der Eigenschaften von Ihnen (der Quelle) besitzen.

„Stammklasse“ generieren (Elternklasse oder Basisklasse)
Syntax: Klassenvater{
}

„Nachkommen“ generieren ( Unterklasse)
Syntax: Klasse Sohn erweitert Vater{
}

PHP erweitert Klassenvererbung Beispielcode:

class father{ 
 protected $name; 
 function construct($name){  //构造函数 
  $this->name=$name; 
 } 
 
 function work(){ 
  echo "{$this->name}我在工作;
 } 
 function destruct(){}  //析构函数
} 
 
class son extends father{  //继承父类
 function play(){ 
  echo "{$this->name}我在玩游戏;
 }  
} 
 
 $my_father=new father(“爸爸”);  //创建父类对象
 $my_father->work(); 

 $my_son=new son(“儿子”); 
 $my_son->work(); 
 $my_son->play();
Nach dem Login kopieren

Analyse: In der übergeordneten Klasse Vater, We Definieren Sie die allgemeinen Eigenschaften und Methoden und definieren Sie dann Unterklassen. Möglicherweise stellen Sie fest, dass die Unterklasse keine Konstruktoren und Destruktoren enthält, da die Unterklasse alle Methoden der übergeordneten Klasse erbt. Sie können also $my_son->work(); aufrufen. Dies ist die PHP-Klasse Inherited. Beachten Sie auch: PHP kann keine mehrstufige Vererbung haben, wie zum Beispiel: Klasse A erweitert B erweitert C. Eine solche Vererbung ist in PHP ungültig. In PHP gibt es nur eine Einzelvererbung, keine Mehrfachvererbung. Zur „Implementierung“ der Mehrfachvererbung sind andere Methoden erforderlich in Verkleidung.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der PHP-Klassenkapselung und der Verwendung der Vererbung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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