КАТЕГОРИИ:


Астрономия- (809) Биология- (7483) Биотехнологии- (1457) Военное дело- (14632) Высокие технологии- (1363) География- (913) Геология- (1438) Государство- (451) Демография- (1065) Дом- (47672) Журналистика и СМИ- (912) Изобретательство- (14524) Иностранные языки- (4268) Информатика- (17799) Искусство- (1338) История- (13644) Компьютеры- (11121) Косметика- (55) Кулинария- (373) Культура- (8427) Лингвистика- (374) Литература- (1642) Маркетинг- (23702) Математика- (16968) Машиностроение- (1700) Медицина- (12668) Менеджмент- (24684) Механика- (15423) Науковедение- (506) Образование- (11852) Охрана труда- (3308) Педагогика- (5571) П Архитектура- (3434) Астрономия- (809) Биология- (7483) Биотехнологии- (1457) Война- (14632) Високи технологии- (1363) География- (913) Геология- (1438) 1065) House- (47672) Журналистика и масови медии- (912) Изобретения- (14524) Чужди езици- (4268) Компютри- (17799) Изкуство- (1338) История- (13644) Компютри- (11121 ) Художествена литература (373) Култура- (8427) Лингвистика- (374) Литература- (1642) Маркетинг- (23702) Математика- (16968 ) Медицина- (15423) Naukovedenie- (506) Образование- (11852) Защита на труда- ( 3308) Педагогика- (5571) P Политика- (7869) Право- (5454) Приборостроение- (1369) Программирование- (2801) Производство- (97182) Промышленность- (8706) Психология- (18388) Религия- (3217) Связь- (10668) Сельское хозяйство- (299) Социология- (6455) Спорт- (42831) Строительство- (4793) Торговля- (5050) Транспорт- (2929) Туризм- (1568) Физика- (3942) Философия- (17015) Финансы- (26596) Химия- (22929) Экология- (12095) Экономика- (9961) Электроника- (8441) Электротехника- (4623) Энергетика- (12629) Юриспруденция- (1492) Ядерная техника- (1748) Олимпиада- (1312) Политика- (7869) Право- (5454) Инструменти- ( 1369) Програмиране- (2801) Производство- (97182) Промишленост- (8706) Психология- (18388) Земеделие- (299) Социология- (6455) Спорт- (42831) Строителство- (4793) Търговия- (5050) Транспорт- (2929) Туризъм- (1568) Физика- (3942) ) Химия- (22929 ) Екология- (12095) Икономика- (9961) Електроника- (8441) Електротехника- (4623) Енергетика- (12629 )

Разширява




Вижте също:
  1. Arg .Graphics.DrawEllipse
  2. Клас пор
  3. Ако (pSpecialBall.yes)
  4. ItemListener
  5. ЛЕКЦИЯ 01
  6. наблюдател
  7. периодизация
  8. Публичен потребител ()
  9. Южни писатели.
  10. Синхронизирано (sB)
  11. Вирджиния вълна

наследяване

Механизмът на наследяване е много важна част от целия обектно-ориентиран подход. Нека се опитаме да обясним своята същност с един пример. Да кажем, че създаваме описание на човек. Очевидно можем да направим това по различни начини в зависимост от това, за какво е описанието. Можете да опишете човек като програмист: той знае, че такива и такива езици за програмиране, операционни системи, са участвали в толкова много проекти. Ако обаче човек е програмист, той не престава да бъде човек като цяло, т.е. той има име, фамилия, място на пребиваване и др. Ако преведем мотивите си в терминологията на обектно-ориентираното програмиране, можем да кажем, че описахме две класове - група от хора и клас програмисти, всеки от които има свои собствени свойства и методи. Освен това, класът програмисти очевидно притежава всички свойства на даден клас хора и в същото време има свои специфични характеристики, т.е. класът на програмистите е подклас от класа на хората. Така че, ако някой има име, тогава програмистът трябва да го има, но не обратното. Освен програмистите, има много повече класове за професионална принадлежност към хората. И те всички ще бъдат подкласове на класа хора. На практика често е подходящо да се дефинира общ клас, който може да се използва едновременно при няколко проекта (например, група от хора или индивиди) и да се адаптира към специфичните нужди на всеки проект (например като клас програмисти). Как може да се приложи това? Използване на разширителния механизъм. Всеки клас може да бъде продължение на друг клас. Разширяващият (или полученият) клас, с изключение на онези свойства и методи, които са описани в неговата дефиниция, има всички функции и свойства на главния (базов клас). В нашия пример класът на програмистите се разширява и класата на всички хора е основна. Няма съществуващи свойства и функции, които могат да бъдат премахнати от класа, класата може да бъде разширена само. Класът на разширенията в PHP4 винаги зависи само от един базов клас, тъй като в PHP не се поддържа множество наследявания. Класовете се разширяват в PHP, като се използва разширената ключова дума.

<? phpclass Person {// определете класа на личността var $ first_name; // име на човек var $ last_name; // лична фамилия make_person ($ t, $ a) {// набори от методи // стойностите на името и името на обекта $ this-> first_name = $ t; $ this-> last_name = $ a; } функция show_person () {// метод показва информация за ехото на човека ("<h2>". $ this-> first_name. "" $ this-> last_name. "</ h2>"); }} клас Програмист разширява Лице {// определи клас // Програмист, който разширява Лицето var $ > // постоянна матрица // задайте променлива в var, можете да използвате set_> }}?>

Пример 6.3. Използвайки механизма за наследяване (html, txt)



Класът "Програмист" има същите променливи и функции като класа "Лице", плюс променливата $ > Можете да създадете представител на класа програмисти по обичайния начин, като използвате новата конструкция. След това можете да инсталирате и извличате списък от езици, които програмистът познава, и същевременно можете да използвате функциите, дефинирани за класа човек, т.е. да настроите и да получите името и фамилията на програмиста и да видите информация за него в браузъра:

<? php $ progr = нов програмист; $ progr -> set_> // методите, дефинирани за клас Programmerprint_r ($ progr-> >

Връзките, в които са съставени класовете Личности и програмисти, които сме създали, също се наричат ​​взаимоотношения родител-дете. Класът "Човек" е родител, а неговите потомци, като например класът "Програмист", се създават въз основа на него чрез разширения. Всеки клас може да стане родител и съответно да генерира потомство.

Редът, по който се определят класовете, е важен. Не можете първо да определите клас на програмист, който да разширява класа "Лице", и то само на самия клас "Човек". Класът трябва да бъде дефиниран преди да бъде използван (разширен).