PHP - klasy i obiekty - klasy potomne oraz dziedziczenie
| DZIAŁANIE: |
|
Kod:

Ewentualne Objaśnienia:
Bardzo ważną i przydatną rzeczą w programowaniu obiektowym jest dziedziczenie. Polega to na tworzeniu tzw. klas potomnych - z innych już istniejących - czyli klas bazowych. Popatrzmy na nasz prosty przykład z klasą Auto - wiadomo, że są różne rodzaje Aut - samochodów. Tak jak w tym przykładzie jest koparka, którą powiedzmy możemy zaliczyć do klasy Auto - posiada ona takie parametry na przykład jak szerokość łyżki czy ładowność. I jest na przykład jakiś samochód sportowy - również możemy go zaliczyć do klasy Auto, ale nie posiada on takich cech jak koparka, ale na przykład można mu zdefiniować przyśpieszenie do setki czy jakieś tam turbo czy coś. Jeśli chcielibyśmy określać dla każdego samochodu z klasy Auto parametry - musielibyśmy w tej klasie podać ich dość sporo - różnych parametrów, jedne Auta by je miały a inne nie. Ale w ten sposób definiowane klasy stawałby się ogromne - klasa zawierałaby również masę nawet niepotrzebnych danych, byłaby nieporęczna krótko mówiąc.No i tutaj z pomocą przychodzi nam dziedziczenie - pozwala ono na utworzenie w naszym przykładzie innych wersji klasy Auto.
Popatrzmy na nasz kod :
- tworzymy nasza klasę Auto i definiujemy dla niej jedną zmienną składową oraz
metodę ( funkcję ). No i dalej dzięki naszemu dziedziczeniu - tworzymy klasy
potomne do naszej klasy auto - tworzymy 2 klasy 'Drogowy' ( dla parametrów
koparki ) oraz 'Sportowy' ( dla parametrów wyścigówki ). W tych klasach
określamy po jednym parametrze no i dalej tworzymy dwa nowe obiekty - ale jak
widać nie podajemy już : new Auto - ale nazwę klasy potomnej czyli dla koparki
new Drogowy i dla wyścigówki new Sportowy.
- dalej określamy wartości dla naszych obiektów czyli markę dla obu oraz
zdefiniowany parametr w klasie potomnej dla danego samochodu.
- na końcu wyświetlamy nasze informację - a efekt tego widzicie na załączonym
zrzucie ekranu.
Zajmijmy się teraz zasięgiem - jak widzicie używałem dotąd operatora
zasięgu - public - jak już mówiłem identyfikator zasięgu określa nam, z którego
miejsca w programie możemy się do danej zmiennej czy metody odwoływać.
W PHP od wersji 5 mamy 3 operatory zasięgu :
- public - dostęp do zmiennej lub metody z dowolnego miejsca w programie, bez
ograniczeń;
- protected - ogranicza dostęp jedynie do klay, w której dana zmienna lub metoda
została zdefiniowana oraz do klas potomnych ( tych które z niej dziedziczyły );
- private - dostęp jedynie do klasy, w której nastąpiła definicja zmiennej lub
metody;
Wszelkie te ograniczenia są po to, aby chronić zmienne wewnętrzne klasy - czyli chodzi o to aby programista nie mógł ręcznie modyfikować ich. Powinno to zapewnić poprawne działanie klasy w dowolnym programie, w którym danej klasy użyjemy.