Aký je rozdiel medzi abstraktnou triedou a rozhraním v PHP

Obsah:

Anonim

The hlavný rozdiel medzi abstraktnou triedou a rozhraním v PHP je to abstraktná trieda môže pozostávať z abstraktných a neabstraktných metód, zatiaľ čo všetky metódy v rozhraní nemajú žiadne implementácie.

PHP je skriptovací jazyk na strane servera. Je to jeden z najpopulárnejších jazykov vo vývoji webových aplikácií. PHP umožňuje manipuláciu so súbormi, manipuláciu s formulármi, odosielanie e -mailov, nahrávanie súborov, prepojenie aplikácie s databázovým systémom, ako je MySQL, a mnoho ďalších úloh. Rámce ako Zend a Code Igniter sú založené na PHP. PHP tiež podporuje objektovo orientované programovanie (OOP). Jednou z hlavných koncepcií OOP je abstrakcia. Pomáha skryť implementácie a zobrazovať používateľovi iba funkcie. Abstraktná trieda a rozhranie sú dve metódy na dosiahnutie abstrakcie.

Abstrakcia, abstraktná trieda, rozhranie, OOP, PHP

Čo je to abstraktná trieda v PHP

Abstraktná metóda je metóda, ktorá nemá žiadnu implementáciu. Abstraktná trieda je trieda, ktorá má aspoň jednu abstraktnú metódu. Môže mať abstraktné aj neabstraktné metódy. Kľúčové slovo „abstrakt“ sa používa na vyhlásenie abstraktnej triedy. Okrem toho trieda, ktorá rozširuje abstraktnú triedu, by mala poskytovať implementácie pre abstraktné metódy v tejto triede. Programátori nemôžu vytvárať objekty pomocou abstraktnej triedy, ale môžu vytvoriť objekt z triedy, ktorá rozširuje abstraktnú triedu.

Obrázok 1: Abstraktná trieda v PHP

Na vyššie uvedenom obrázku je Shape abstraktná trieda. Má abstraktnú metódu nazývanú draw a neabstraktnú metódu nazývanú display. Trieda trojuholníkov rozširuje Shape. Trieda trojuholníkov teda poskytuje implementáciu kreslenia abstraktnej metódy. V riadku 19 sa vytvorí objekt Triangle. V riadku 20 sa metóda kreslenia nazýva pomocou tohto objektu. Preto sa metóda kreslenia spustí a na konzole zobrazí „trojuholník“.

Čo je rozhranie v PHP

Všetky metódy v rozhraní sú abstraktné metódy. Inými slovami, obsahuje iba prototypy funkcií alebo funkcie bez implementácií. Programátor nemôže vytvárať objekty pomocou rozhrania. Rozhranie je deklarované pomocou kľúčového slova „interface“. Aj keď sú metódy v rozhraní abstraktné, programátor ich nedeklaruje abstraktným kľúčovým slovom. Namiesto toho musia mať tieto metódy rozsah verejnej viditeľnosti. Trieda, ktorá implementuje rozhranie, by mala poskytovať implementácie pre všetky svoje abstraktné metódy.

Obrázok 2: Program PHP 1 s rozhraním

Vo vyššie uvedenom programe je Shape rozhraním. Má metódu nazývanú kreslenie. Nemá implementáciu. Trieda Triangle rozširuje Shape. Trieda Triangle poskytuje implementáciu pre metódu draw. V riadku 16 sa vytvorí objekt objektu Triangle. V riadku 17 sa metóda kreslenia volá pomocou tohto objektu. Metóda draw sa preto spustí a na konzole zobrazí „trojuholník“.

Rozhrania navyše pomáhajú implementovať viacnásobnú dedičnosť. Viacnásobná dedičnosť je proces, ktorý umožňuje triede používať atribúty a metódy viacerých tried.

Obrázok 3: Program PHP s rozhraniami

Rozhranie A má metódu metódy A. Podobne má rozhranie B spôsobovú metódu B. Tieto metódy sú funkčnými prototypmi. Inými slovami, tieto metódy nemajú žiadnu implementáciu. Test triedy implementuje rozhranie A a B. Preto táto trieda poskytuje implementácie pre metódu A a metódu B. Class Test má tiež svoju vlastnú metódu nazývanú methodTest. Riadok 26 vytvára objekt Testu. Potom sa pomocou tohto objektu zavolá metóda methodA, method a methodTest.

Rozdiel medzi abstraktnou triedou a rozhraním v PHP

Definícia

Abstraktná trieda v PHP je trieda deklarovaná abstraktným kľúčovým slovom a je zbierkou abstraktných a neabstraktných metód. Naopak, rozhranie v PHP je referenčný typ a pozostáva zo súboru metód bez implementácií alebo prototypov funkcií. Toto je hlavný rozdiel medzi abstraktnou triedou a rozhraním v PHP.

Metódy

Abstraktná trieda môže mať abstraktné aj neabstraktné metódy, zatiaľ čo všetky metódy v rozhraní sú metódou bez implementácií.

Kľúčové slovo

Kým abstraktná trieda je deklarovaná pomocou kľúčového slova „abstrakt“, rozhranie je deklarované pomocou kľúčového slova „rozhranie“.

Použitie

Ďalším rozdielom medzi abstraktnou triedou a rozhraním v PHP je, že abstraktná trieda pomáha dosiahnuť abstrakciu, zatiaľ čo rozhranie pomáha dosiahnuť abstrakciu, ako aj viacnásobnú dedičnosť.

Záver

Jazyk PHP podporuje objektovo orientované programovanie. Abstrakcia je pilierom OOP. Abstraktné triedy a rozhrania sú dve metódy na dosiahnutie abstrakcie. Hlavný rozdiel medzi abstraktnou triedou a rozhraním v PHP je v tom, že abstraktná trieda môže pozostávať z abstraktných a neabstraktných metód, zatiaľ čo všetky metódy v rozhraní nemajú žiadne implementácie.

Referencie:

1. „Abstraktné triedy v PHP.“ GeeksforGeeks, 11. decembra 2018, K dispozícii tu. 2. „Viacnásobná dedičnosť v PHP.“ GeeksforGeeks, 21. februára 2019, K dispozícii tu.

Aký je rozdiel medzi abstraktnou triedou a rozhraním v PHP