Heim >Backend-Entwicklung >PHP-Problem >Was ist der Unterschied zwischen der Vererbung von Klassen und der Implementierung von Schnittstellen in PHP?

Was ist der Unterschied zwischen der Vererbung von Klassen und der Implementierung von Schnittstellen in PHP?

WBOY
WBOYOriginal
2022-02-17 11:43:181710Durchsuche

Der Unterschied zwischen geerbten Klassen und implementierten Schnittstellen in PHP: 1. Die PHP-Vererbung gehört zur Einzelvererbung, die Einheit gewährleistet, aber nicht flexibel genug ist, während die Implementierung von Schnittstellen eine Ergänzung zur Einzelvererbung darstellt. 2. Die Implementierung von Schnittstellen kann ohne erreicht werden Zerstörung der hierarchischen Beziehung. Unter der Prämisse wird die Funktion einer bestimmten Klasse erweitert.

Was ist der Unterschied zwischen der Vererbung von Klassen und der Implementierung von Schnittstellen in PHP?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, PHP-Version 7.1, DELL G3-Computer

Der Unterschied zwischen geerbten Klassen und implementierten Schnittstellen in PHP

1. Vergleich zwischen Vererbung und implementierten Schnittstellen:

( 1) PHP-Vererbung ist eine Einzelvererbung, die die Einzigartigkeit gewährleistet, aber nicht flexibel genug ist. Die Implementierung von Schnittstellen ist eine Ergänzung zur Einzelvererbung.

(2) Die Implementierung von Schnittstellen kann die Funktionalität einer bestimmten Klasse erweitern, ohne die Klassenhierarchiebeziehung zu zerstören.

<?php
  class Monkey {
      public $age;
      public $name;
      public function climbing() {
          echo "猴子会爬树<br/>";
      }
  }
  interface iBirdable {
      public function fly();
  }
  interface iFishable {
      public function swimming();
  }
  class LittleMonkey extends Monkey implements iBirdable,iFishable {
      public function fly() {
          echo "猴子还会飞<br/>";
      }
      public function swimming() {
          echo "猴子也会游泳<br/>";
      }
  }
  $littleMonkey = new LittleMonkey();
  $littleMonkey -> climbing();
  $littleMonkey -> fly();
  $littleMonkey -> swimming();
?>

2. Final-Schlüsselwort:

1. Wenn eine Klasse nicht von anderen Klassen geerbt werden möchte, kann sie mit final geändert werden; von Unterklassen überschrieben werden (nicht (ich hoffe, diese Methode wird von Unterklassenmethoden überladen), oder sie kann mit final geändert werden.

<?php  
class A{  
    final public function getRate($salary){  
        return $salary*0.08;  
    }  
}  
class B extends A{  
    //不能去覆盖父类的getRate方法.  
    /*public function getRate($sal){ 
        return $sal*0.01; 
    }*/  
}  
        
$b=new B();  
echo $b->getRate(100)."<br/>";  
?>

3. Final kann keine Mitgliedsvariablen (Eigenschaften) ändern.

3. const:

1 Wenn ein Attribut nicht geändert werden soll, können Sie es mit const zu einer Konstante machen.

2. Grundlegende Syntax:

const-Konstantenname = Anfangswert zuweisen;

Wenn Sie keinen Anfangswert zuweisen, kann er später nicht manipuliert werden und hat keinen Wert.

3. Modifikatoren können nicht auf Konstanten geschrieben werden. Sie sind standardmäßig öffentlich, können aber nicht ausgeschrieben werden.

4. Konstantennamen werden grundsätzlich in Großbuchstaben benannt.

5. Aufrufsyntax:

Verwendet innerhalb der Klasse:

self::konstanter Name::konstanter Name;

Verwendet außerhalb der Klasse:

Schnittstellenname::constant;

PHP-Video-Tutorial

"

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen der Vererbung von Klassen und der Implementierung von Schnittstellen in PHP?. 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