Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Klasy i metody abstrakcyjne i finalne, Do czego wykorzystać je w praktyce?
1010
post
Post #1





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

Ostrzeżenie: (0%)
-----


Witam, poznałem właśnie jak działają klasy i metody abstrakcyjne i finalne, ale zupełnie nie wiem do czego można by je wykorzystać w praktyce. Czy ktoś mógłby mi przedstawić jakiś prosty przykład, wraz z wytłumaczeniem "z czym to się je"?

Z góry dziękuje za pomoc...


PS. Moje początki w obiektówce są dosyć trudne.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Cysiaczek
post
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Wyobraź sobie metodę pobierzPlec();
Ten podział jest wspólny dla wszystkich zwierząt i sposób rozpoznania płci również (nie wnikajmy w szczegóły :roll2: )
Po co zatem robić dla każdego zwierzęcia osobną metodę? Upychasz jedną w klasie abstrakcyjnej i tyle. Dlaczego akurat w abstrakcyjnej? Ano, człowiek jako zwierze inaczej wykonuje pewne czynności, ale takie, które są wspólne dla wszystkich zwierząt.
Podam przykład takiego zróżnicowania (sorry, że pozostanę w kręgu niższych partii ciała)
  1. <?php
  2. //człowiek
  3. function wydalaj(){
  4. //wywołanie prywatnej metody
  5. $this->idzDoLazienki()
  6. //pozostale metody
  7. }
  8.  
  9. //pies
  10. function wydalaj(){
  11. }
  12. ?>


Widać, że jest różnica, ale na poziomie implementacji, dlatego :

  1. <?php
  2. abstract class Zwierze
  3. {
  4.  
  5. abstract function wydalaj();
  6.  
  7. }
  8.  
  9. class Czlowiek extends Zwierze
  10. {
  11.  //musi implemetnować
  12.  function wydalaj()
  13. {
  14.  $this->idzDoLazienki()
  15.  }
  16.  
  17. //konkretna implementacja
  18. private function idzDoLazienki()
  19. {
  20. return $this->wiadomoCo; // (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
  21. }
  22.  
  23. }
  24. ?>


Pozdrawiam
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 16:34