Шта је ООП апстрактна класа у ПХП-у?

Sta Je Oop Apstraktna Klasa U Php U



Основа за „објектно оријентисано програмирање“ (ООП) парадигма је појам који 'предмети' може да садржи и код и податке. Једна од главних компоненти објектно оријентисаног програмирања (ОТВОРЕН) ин ПХП , популарни скриптни језик, је употреба апстрактне класе . У ПХП-у, ан апстрактна класа служи као модел за креирање других класа јер се не може инстанцирати сам. Овај чланак разматра апстрактни часови' дефиниција, функционалност и употреба у ПХП-овом ООП-у.

Шта је апстрактна класа?

Прво, важно је разумети шта апстрактна класа је у ПХП . Каже се да је класа која се не може инстанцирати или направити директно од објекта апстрактан . Уместо тога, друге класе које га наслеђују користе га као основну или родитељску класу. Апстрактни часови не пружају конкретну имплементацију изведених класа; него оцртавају своју структуру и понашање. Ово омогућава изведеним класама да задрже своје специфично понашање док се и даље придржавају основног оквира који обезбеђује апстрактна класа.

Као део ПХП ‘с ОПЕН , апстрактне класе служе као средство за дефинисање основне колекције карактеристика које могу да деле више изведених класа. Програмери могу да обезбеде шаблон за класе које ће наследити апстрактну класу тако што ће је креирати. Да би се осигурало да су све изведене класе усклађене са истим интерфејсом, овај нацрт служи као уговор између апстрактна класа и изведене класе. Специфичности имплементације су препуштене свакој подкласи, али овај интерфејс специфицира заједничке методе које су неопходне за све подкласе. Промене направљене у апстрактној класи ће се тренутно проширити на све изведене класе које је користе, омогућавајући више поновне употребе кода и лакше одржавање.







Како функционишу апстрактне класе у ПХП-у?

Када „апстрактна“ кључна реч се користи за дефинисање класе, ПХП је обавештен да се класа не може инстанцирати. И једно и друго апстрактан и неапстрактни методе се могу наћи у апстрактне класе . Апстрактан методе су дефинисане са 'апстрактан' кључну реч и не пружају имплементацију – они једноставно декларишу потпис методе. Ове апстрактне методе морају бити имплементиране помоћу изведених класа које су изведене из апстрактна класа . Неапстрактно методе, с друге стране, обезбеђују подразумевану имплементацију коју изведене класе могу изабрати да замене.



Погледајмо пример:





апстрактан класа ја {

апстрактан функција О мени ( $наме , $аге ) ;

}

класа Интро протеже ја {

функција О мени ( $наме , $аге ) {

одјек 'Моје име је $наме а моје године су $аге ' ;

}

}

= Нова Интро ( ) ;

-> О мени ( 'Боб' , двадесет један ) ;

?>

У горњем коду, апстрактна метода у апстрактна родитељска класа „Ја“ има два аргумента, „име“ и „старост“. Подређена класа „Интро“ такође дефинише исту функцију са ова два аргумента, а уводна изјава се штампа на екрану.





Излаз



Предности апстрактних класа у ПХП-у

1: Поновна употреба кода

Апстрактни часови у ПХП-у имају велику предност: омогућавају вам да поново користите код. Дефинисањем заједничког понашања у ан апстрактна класа , можете избећи понављање кода у много различитих подкласа. Ово чини управљање и одржавање кода једноставнијим. Апстрактни часови такође вам помаже да примените доследност и стандарде у свим вашим подкласама.

2: Дефинишите апстрактна својства

Ин ПХП , апстрактне класе имају корисну функцију тзв апстрактан својства. Ова својства вам омогућавају да поставите одређене захтеве за подкласе. На пример, ако креирате систем за животиње, можете поставити апстрактно својство под називом $наме то захтева да свака подкласа има својство имена. Ово може помоћи да се осигура да ваш код има конзистентну структуру и да га учини лакшим за разумевање и одржавање.

Закључак

Могућност дизајнирања скупа функција које могу да деле неколико класа чини апстрактне класе корисно за програмере. Ово доводи до више поновне употребе кода и лакшег одржавања пошто све промене унете у апстрактну класу аутоматски утичу на све класе које су наследиле од ње. Када се правилно користи, апстрактне класе може значајно побољшати структуру и организацију кода у објектно оријентисаном пројекту. Међутим, важно је да их користите разборито јер њихова прекомерна употреба може довести до превише сложеног и тешког кода за одржавање.