⊗ppOpIfInr 65 of 107 menu

PHPде ООПдеги интерфейсдер

Силер мурунтан эле билесиздер, абстракттык класстар өзүнүн тукумдары үчүн методдордун жыйындысын түзөт. Бул методдордун бир бөлүгү класс өзүндө ишке ашырылышы мүмкүн, ал эми калган бөлүгү абстракттык деп жарыяланып, тукум классдарда ишке ашырылышын талап кылышы мүмкүн.

Өзүңүздүн абстракттык класстыңыз ишке ашыруу менен методдорду кошпой, жөн гана абстракттык жарыяланган публикалык методдордун жыйындысынан тура турган учурду элестетип көрөлү.

Чындыгында, ата-классыңыз тукумдардын интерфейсин сүрөттөйт, башкача айтканда, алар тарабынан милдеттүү түрдө ишке ашырылышы керек болгон алардын публикалык методдорунун жыйындысын.

Бул бизге эмне үчүн керек: программалоодо аз жаңылыштар жасоо үчүн - бардык зарыл методдорду ата-класста сүрөттөп, биз тукумдардын аларды чындыгында ишке ашырарына ишене алабыз.

Бул качан жардам берет: ата-классыбызды жана ага бир нече тукум классыбызды түзөлү дейли. Эгер кийинчерээк, мисалы, бир айдан кийин, дагы бир тукум классын түзүүнү чечсек, биз кодубуздун деталдарын унутуп калышыбыз ыктымал жана жаңы тукумда кандайдыр бир методдун ишке ашырылышын жазууну унутуп коюшубуз мүмкүн. Бирок, PHP өзү методду жоготкононго жол бербейт - жөн гана ката чыгарат.

Ошол эле нерсе башка программачыга, сиздин долбооруңуз менен иштегенге да тиешелүү. Ата-класстын коду сиз тарабынан жазылсын, андан кийин сиздин коллегаңыз дагы бир тукум түзүүнү чечсин дейли. Сиздин коллегаңыз дагы бир нече методду жоготпойт.

Бирок, көйгөй бар: чындыгында биз ата-классыбызды ага абстракттык публикалык методдорду жазуу үчүн кылдык, бирок биз өзүбүз же коллегабыз бул класска публикалык эмес же абстракттык эмес методду кокустан кошуу мүмкүнчүлүгүнө ээ.

Ата-класска абстракттык публикалык методдордон башка методдорду жасашты физикалык жактан тыюу салууну каалайлы деп коёлу. PHPде бул үчүн абстракттык класстардын ордуна интерфейсдерди колдонсо болот.

Интерфейсдер - бардык методдору публикалык жана ишке ашырылышы жок класстар. Методдордун коду интерфейстердин тукум класстары тарабынан ишке ашырылышы керек.

Интерфейсдер кадимки класстар сыяктуу эле жарыяланат, бирок class сөзүнүн ордуна interface ачкыч сөзүн колдонушат.

Интерфейстерден мурастоо үчүн бир аз башка терминдер колдонулат: класстар интерфейстерден мурастабайт, аларды ишке ашырат деп айтылат. Ошого жараша extends сөзүнүн ордуна implements ачкыч сөзү колдонулат.

Интерфейстин объектин түзүүгө болбойт. Интерфейстин бардык методдору public деп жарыяланышы керек жана ишке ашырылышы болбошу керек. Интерфейсте методдор гана болушу мүмкүн, касиеттер болбойт. Ошондой эле бир эле аталыштагы интерфейс жана класс жасашқа да болбойт.

Кыргызча
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어LietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Биз сайттин иштөөсү, аналитика жана персонализация үчүн cookie файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу