Wat is het verschil tussen abstracte klasse en interface in PHP?

Inhoudsopgave:

Anonim

De grootste verschil tussen abstracte klasse en interface in PHP is dat: abstracte klasse kan bestaan ​​uit abstracte methoden en niet-abstracte methoden, terwijl alle methoden in een interface geen implementaties hebben.

PHP is een server-side scripttaal. Het is een van de meest populaire talen in webontwikkeling. PHP maakt het mogelijk om bestanden te verwerken, formulieren te verwerken, e-mails te verzenden, bestanden te uploaden, een applicatie te verbinden met DBMS zoals MySQL en vele andere taken. Frameworks zoals Zend en Code Igniter zijn gebaseerd op PHP. PHP ondersteunt ook Object Oriented Programming (OOP). Een belangrijk concept in OOP is abstractie. Het helpt om implementaties te verbergen en alleen de functionaliteit aan de gebruiker weer te geven. Abstracte klasse en interface zijn twee methoden om abstractie te bereiken.

Abstractie, abstracte klasse, interface, OOP, PHP

Wat is abstracte klasse in PHP

Een abstracte methode is een methode die geen implementatie heeft. Een abstracte klasse is een klasse die ten minste één abstracte methode heeft. Het kan zowel abstracte methoden als niet-abstracte methoden hebben. Het trefwoord "abstract" wordt gebruikt om een ​​abstracte klasse te declareren. Bovendien moet de klasse die de abstracte klasse uitbreidt, de implementaties leveren voor de abstracte methoden in die klasse. Programmeurs kunnen geen objecten maken met een abstracte klasse, maar ze kunnen een object maken van een klasse die de abstracte klasse uitbreidt.

Figuur 1: Abstracte klasse in PHP

In de bovenstaande afbeelding is Shape een abstracte klasse. Het heeft een abstracte methode genaamd draw en een niet-abstracte methode genaamd display. De triangelklasse breidt Shape uit. De klasse Triangle levert dus de implementatie voor de abstracte methode-trekking. In regel 19 wordt een object van Triangle gemaakt. In regel 20 wordt de tekenmethode aangeroepen met dat object. Daarom wordt de tekenmethode uitgevoerd en wordt de "Driehoek" op de console weergegeven.

Wat is interface in PHP

Alle methoden in een interface zijn abstracte methoden. Met andere woorden, het bevat alleen functie-prototypes of functies zonder implementaties. Programmeur kan geen objecten maken met behulp van een interface. Een interface wordt gedeclareerd met het trefwoord "interface". Hoewel de methoden in een interface abstract zijn, declareert de programmeur ze niet met het abstracte trefwoord. In plaats daarvan moeten die methoden het bereik voor openbare zichtbaarheid hebben. Een klasse die een interface implementeert, moet de implementaties voor al zijn abstracte methoden leveren.

Figuur 2: PHP-programma 1 met een interface

In het bovenstaande programma is Shape een interface. Het heeft een methode genaamd draw. Het heeft geen uitvoering. De klasse Triangle breidt Shape uit. De klasse Triangle biedt de implementatie voor de tekenmethode. In regel 16 wordt een object of Triangle-object gemaakt. In regel 17 wordt de tekenmethode aangeroepen met dat object. Daarom wordt de tekenmethode uitgevoerd en wordt de "Driehoek" op de console weergegeven.

Bovendien helpen interfaces ook om meervoudige overerving te implementeren. Meervoudige overerving is het proces waarbij een klasse attributen en methoden van meerdere klassen kan gebruiken.

Figuur 3: PHP-programma met interfaces

Interface A heeft een methode methodeA. Evenzo heeft interface B een methodemethodeB. Deze methoden zijn functieprototypes. Met andere woorden, deze methoden hebben geen implementaties. Class Test implementeert interface A en B. Daarom biedt die klasse implementaties voor methode A en methode B. Class Test heeft ook zijn eigen methode genaamd methodTest. Regel 26, creëert een object van Test. Vervolgens worden de methodeA, methode en methodeTest aangeroepen met behulp van dat object.

Verschil tussen abstracte klasse en interface in PHP

Definitie

Een abstracte klasse in PHP is een klasse gedeclareerd met een abstract trefwoord en is een verzameling abstracte en niet-abstracte methoden. Een interface in PHP is daarentegen een referentietype en bestaat uit een verzameling methoden zonder implementaties of functieprototypes. Dit is dus het belangrijkste verschil tussen abstracte klasse en interface in PHP.

Methoden:

Een abstracte klasse kan zowel abstracte methoden als niet-abstracte methoden hebben, terwijl alle methoden in een interface methode zonder implementaties zijn.

Trefwoord

Terwijl een abstracte klasse wordt gedeclareerd met het trefwoord "abstract", wordt een interface gedeclareerd met het trefwoord "interface".

Gebruik

Een ander verschil tussen abstracte klasse en interface in PHP is dat een abstracte klasse helpt om abstractie te bereiken, terwijl een interface helpt om abstractie en meervoudige overerving te bereiken.

Conclusie

PHP-taal ondersteunt Object Oriented Programming. Abstractie is een pijler van OOP. Abstracte klassen en interfaces zijn twee methoden om abstractie te bereiken. Het belangrijkste verschil tussen abstracte klasse en interface in PHP is dat de abstracte klasse kan bestaan ​​uit abstracte methoden en niet-abstracte methoden, terwijl alle methoden in een interface geen implementaties hebben.

Referenties:

1. "Abstracte klassen in PHP." GeeksforGeeks, 11 december 2018, hier beschikbaar. 2. "Meerdere overerving in PHP." GeeksforGeeks, 21 februari 2019, hier beschikbaar.

Wat is het verschil tussen abstracte klasse en interface in PHP?