Hva er OOP -abstrakt klasse i PHP?

Hva er OOP -abstrakt klasse i PHP?
Grunnlaget for “Objektorientert programmering” (OOP) paradigme er forestillingen om “Gjenstander” kan inneholde både kode og data. En av hovedkomponentene i objektorientert programmering (OOP) i PHP, Et populært skriptspråk, er bruken av abstrakte klasser. I PHP, en abstrakt klasse fungerer som en modell for å lage andre klasser fordi den ikke kan bli instantiert på egen hånd. Denne artikkelen diskuterer abstrakte klasser ' Definisjon, funksjonalitet og bruk i PHPs OOP.

Hva er en abstrakt klasse?

For det første er det viktig å forstå hva en abstrakt klasse er i PHP. En klasse som ikke kan bli instantiert, eller gjøres direkte til et objekt, sies å være abstrakt. I stedet bruker andre klasser som arver fra den som en base eller foreldreklasse. Abstrakte klasser ikke gi spesifikk implementering av de avledede klassene; snarere skisserer de strukturen og atferden. Dette gjør at avledede klasser kan opprettholde sin egen særegne oppførsel mens de fremdeles holder seg til de grunnleggende rammene som er gitt av den abstrakte klassen.

Som en del av PHP's Oop, abstrakte klasser tjene som et middel til å definere en baseinnsamling av egenskaper som kan deles av flere avledede klasser. Utviklere kan gi en mal for klasser som vil arve fra en abstrakt klasse ved å lage den. For å sikre at alle avledede klasser samsvarer med det samme grensesnittet, fungerer denne blåkopien som en kontrakt mellom abstrakt klasse og de avledede klassene. Implementeringsbehandlingen blir overlatt til hver underklasse, men dette grensesnittet spesifiserer de vanlige metodene som er nødvendige for alle underklasser. Endringer som er gjort i den abstrakte klassen vil øyeblikkelig forplante seg til alle avledede klasser som bruker den, noe som gir mer bruk av kode og enklere vedlikehold.

Hvordan fungerer abstrakte klasser i PHP?

Når “Abstrakt” nøkkelord brukes til å definere en klasse, PHP blir informert om at klassen ikke kan bli instantiert. Både abstrakt og Ikke-abstrakt Metoder finnes i abstrakte klasser. Abstrakt Metoder er definert med "abstrakt" nøkkelord og ikke gi en implementering - de erklærer ganske enkelt metodesignaturen. Disse abstrakte metodene må implementeres av avledede klasser som stammer fra abstrakt klasse. Ikke-abstrakt Metoder gir derimot en standard implementering som avledede klasser kan velge å overstyre.

La oss se på et eksempel:

abstrakt klasse meg
abstrakt funksjon omme ($ name, $ alder);

Klasseintro utvider meg
funksjon omme ($ name, $ alder)
ekko "Mitt navn er $ navn og min alder er $ alder";


$ a = ny intro ();
$ a-> Omme ("Bob", 21);
?>

I koden ovenfor, abstrakt metode i Abstrakt foreldreklasse 'Me' har to argumenter, 'navn' og 'alder'. Child Class 'Intro' definerer også den samme funksjonen med disse to argumentene, og introerklæringen er skrevet ut på skjermen.

Produksjon

Fordeler med abstrakte klasser i PHP

1: Kode gjenbrukbarhet

Abstrakte klasser I PHP har en stor fordel: de lar deg bruke kode på nytt. Ved å definere delt oppførsel i en abstrakt klasse, Du kan unngå å gjenta kode i mange forskjellige underklasser. Dette gjør det enklere å håndtere og opprettholde koden. Abstrakte klasser Hjelp deg også å håndheve konsistens og standarder på tvers av alle underklassene dine.

2: Definer abstrakte egenskaper

I PHP, Abstrakte klasser har en nyttig funksjon som heter abstrakt egenskaper. Disse egenskapene lar deg stille visse krav til underklasser. For eksempel, hvis du lager et system for dyr, kan du sette en abstrakt egenskap som heter $ navn som krever at hver underklasse har en navnegenskap. Dette kan bidra til at koden din har en jevn struktur og gjør den enklere å forstå og vedlikeholde.

Konklusjon

Muligheten til å designe et sett med funksjoner som kan deles av flere klasser gjør abstrakte klasser nyttig for utviklere. Dette fører til mer gjenbruk av kode og enklere vedlikehold siden eventuelle endringer som gjøres i en abstrakt klasse automatisk påvirker alle klasser som arver fra den. Når det brukes riktig, abstrakte klasser kan forbedre strukturen og organiseringen av kode betydelig i et objektorientert prosjekt. Imidlertid er det viktig å bruke dem med omtanke siden overforbruk av dem kan føre til altfor sammensatt og vanskelig å vedlikeholde kode.