Što je OOP apstraktna klasa u PHP-u?

Sto Je Oop Apstraktna Klasa U Php U



Temelj za “objektno orijentirano programiranje” (OOP) paradigma je pojam koji “objekti” može sadržavati i kod i podatke. Jedna od glavnih komponenti objektno orijentiranog programiranja (OTVOREN) u PHP , popularni skriptni jezik, je upotreba apstraktne klase . U PHP-u, an apstraktna klasa služi kao model za stvaranje drugih klasa jer se ne može samostalno instancirati. Ovaj članak raspravlja apstraktne klase' definicija, funkcionalnost i upotreba u OOP-u PHP-a.

Što je apstraktna klasa?

Prvo, važno je razumjeti što je apstraktna klasa unutra je PHP . Za klasu koja se ne može instancirati ili izravno pretvoriti u objekt kaže se da jest sažetak . Umjesto toga, druge klase koje ga nasljeđuju koriste ga kao baznu ili nadređenu klasu. Apstraktne klase ne pružaju specifičnu implementaciju izvedenih klasa; nego ocrtavaju njihovu strukturu i ponašanje. To omogućuje izvedenim klasama da zadrže svoje vlastito razlikovno ponašanje dok se još uvijek pridržavaju temeljnog okvira koji pruža apstraktna klasa.

Kao dio PHP ‘s OTVOREN , apstraktne klase služe kao sredstvo za definiranje osnovne kolekcije karakteristika koje mogu dijeliti više izvedenih klasa. Razvojni programeri mogu osigurati predložak za klase koje će naslijediti apstraktnu klasu stvaranjem iste. Kako bi se osiguralo da su sve izvedene klase usklađene s istim sučeljem, ovaj nacrt služi kao ugovor između apstraktna klasa i izvedene klase. Specifičnosti implementacije prepuštene su svakoj podklasi, ali ovo sučelje specificira zajedničke metode koje su potrebne za sve podklase. Promjene u apstraktnoj klasi trenutno će se proširiti na sve izvedene klase koje je koriste, omogućujući više ponovne upotrebe koda i lakše održavanje.







Kako funkcioniraju apstraktne klase u PHP-u?

Kada ključna riječ 'apstraktna'. se koristi za definiranje klase, PHP je obaviješten da se klasa ne može instancirati. Oba sažetak i neapstraktan metode se mogu naći u apstraktne klase . Sažetak metode su definirane s 'sažetak' ključnu riječ i ne pružaju implementaciju – oni jednostavno deklariraju potpis metode. Ove apstraktne metode moraju biti implementirane od strane izvedenih klasa koje proizlaze iz apstraktna klasa . Neapstraktno metode, s druge strane, daju zadanu implementaciju koju izvedene klase mogu odlučiti nadjačati.



Pogledajmo primjer:





sažetak razreda Mi {

sažetak funkcija O meni ( $ime , $dob ) ;

}

razreda uvod proteže se Mi {

funkcija O meni ( $ime , $dob ) {

jeka 'Moje ime je $ime a moje godine su $dob ' ;

}

}

$a = novi uvod ( ) ;

$a -> O meni ( 'Bob' , dvadeset i jedan ) ;

?>

U gornjem kodu, apstraktna metoda u apstraktna roditeljska klasa 'Ja' ima dva argumenta, 'ime' i 'dob'. Podređena klasa 'Intro' također definira istu funkciju s ova dva argumenta, a uvodna izjava se ispisuje na ekranu.





Izlaz



Prednosti apstraktnih klasa u PHP-u

1: Mogućnost ponovne upotrebe koda

Apstraktne klase u PHP-u imaju veliku prednost: omogućuju vam ponovnu upotrebu koda. Definiranjem zajedničkog ponašanja u an apstraktna klasa , možete izbjeći ponavljanje koda u mnogim različitim potklasama. To čini upravljanje i održavanje vašeg koda jednostavnijim. Apstraktne klase također vam pomažu u provođenju dosljednosti i standarda u svim vašim potklasama.

2: Definirajte apstraktna svojstva

U PHP , apstraktne klase imaju korisnu značajku tzv sažetak Svojstva. Ova svojstva vam omogućuju postavljanje određenih zahtjeva za podklase. Na primjer, ako stvarate sustav za životinje, možete postaviti apstraktno svojstvo tzv $ime koji zahtijeva da svaka podklasa ima svojstvo imena. To može pomoći osigurati da vaš kod ima dosljednu strukturu i učiniti ga jednostavnijim za razumijevanje i održavanje.

Zaključak

Sposobnost dizajniranja skupa značajki koje mogu dijeliti nekoliko klasa čini apstraktne klase korisno za programere. To dovodi do više ponovne upotrebe koda i lakšeg održavanja budući da sve promjene u apstraktnoj klasi automatski utječu na sve klase koje nasljeđuju od nje. Kada se pravilno koristi, apstraktne klase može značajno poboljšati strukturu i organizaciju koda u objektno orijentiranom projektu. Međutim, važno ih je koristiti razumno jer njihova pretjerana upotreba može dovesti do previše složenog koda koji je težak za održavanje.