Vă mulțumesc, un fel de, o explicație foarte clară. O altă întrebare pe un subiect ușor diferit, dar similare. Am înțeles corect că trebuie să faceți clasa de transport Abstract (mai degrabă decât de obicei clasa), datorită faptului că aceasta este o metodă de mișcare, și este necesar ca toate clasele de copil folosesc această metodă? Adică, dacă ar fi fost o clasă normală, clasele derivate ar trebui să scrie $ this-> mutare (), iar în cazul în care este o clasă abstractă, metoda de circulație vor fi utilizate în curând în clasele de copii?
Anna B., te bat la metodele mostenitorilor nu prin clasă abstractă, ci în mod direct.
Sunteți în aplicația creează un nou obiect și de a folosi metodele sale.
de exemplu
$ Airplains = noi Airplains; // Aici creați un obiect
$ Airpalins-> getEngine (); // Se obține proprietate, pe care a moștenit de la o clasă abstractă, sau un fel de proprietatea dumneavoastră. În exemplul meu, acest lucru este motorul.
$ Airplains-> mutare (); // apoi utilizați metoda de circulație, care a fost moștenită de la abstract, dar punerea în aplicare a acestei funcții în clasa de aeronave.
Avionul și mașina se deplasează în diferite moduri și este „descriere“ este scris în metoda MSY. Pentru fiecare propriul său. Dar numele metodelor sunt identice. Acesta vă permite să trimiteți diferite obiecte și să nu vă faceți griji cu privire la faptul că acestea vor funcționa în mod corespunzător toate, dacă treci avionul a fost de zbor, în cazul în care mașina va merge. Fiecare clasă știe ce să facă. Dacă nu pune în aplicare metoda abstractă în alte clase, clase va arunca o eroare și aveți nevoie să le pună în aplicare.
codul de $ this-> mutare () // obține obiectul curent, și de a folosi abordarea MSY. În cazul în care o astfel de metodă este, și-l ai. Că totul va fi bine.
Dacă o faci nu prin clasă abstractă, ci pur și simplu prin clasa. Aceasta va suprascrie metoda. În practică, merge așa: aveți o descriere a modului în care să se miște avionul, iar apoi apelați aparatul și mașina începe să utilizeze la fel ca avionul zboară în aparat final, dar nu merge.