Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sens dziedziczenia i jego zasada, na przykładzie klasy DB i klasy galerii
yasiek
post
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 4.06.2006
Skąd: Strzeszyce/Kraków

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


Powiedzmy, że opanowałem już tworzenie obiektów w php. Jednak to moje "opanowanie" to właściwie podstawy. Chciałbym zrozumieć jeszcze kilka rzeczy, a większośc artykułów jakie znalazłem, to albo dla całkowicie początkujących, albo dla totalnie zaawansowanych.

Przytoczmy na przykład dwie klasy:

klasa DB: odpowiedzialna za operacje na bazie danych; główne funkcje - konstruktor, który łączy z bazą, funkcja query, fetchAssoc, numRows no i close.

klasa gallery - no i powiedzmy, że chciałbym mieć tutaj funkcje odpowiedzialne za wprowadzanie rysunków, wyświetlanie według kategorii, według usera, wyświetlanie jednego obrazka itp itd

No i teraz moje pytanie(a) - czy klasa gallery powinna dziedzyczyć klasę (po klasie (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ) DB? no i w jaki sposób? czy powinna mieć własnego konstruktora? które funkcję powinny mieć status private, public (i na co one pozwalają)?i jak użyć klasy macierzystej w klasie "pochodnej"?

Wiem, ze dużo zagadnień i zapewne odpowiedzi będą nieco dłuższe niż pytania, dlatego jak ktoś znajdzie chwilkę, to byłbym niezmiernie wdzięczny, gdyby coś tutaj napisał (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

P.S. ups.. sorry za tamten temat... widocznie gdzieś wcisnąłem niepotrzebnie enter... proszę o wyrzucenie tamtego wątku i z góry dzięki!

Ten post edytował yasiek 25.08.2006, 10:16:08
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.




Nie. Widac zupelnie nie zrozumiełeś idei oop. Nie martw się - większośc osób tak ma.
Uzywanie klas to nie to samo co programowanie obiektowe - można używac klas, ale nie programować obiektowo. Programowania obiektowe to pewien szczególny sposób myślenia o aplikacji, w którym ogromną wagę przykłada się do projektowania.
Opowiedz sobie na pytanie: Co ma wspólnego klasa galerii z klasą DB?
Jeśli nie ma nic wspólnego, to dlaczego ma po niej dziedziczyć? Czy galeria jest specjalizacją klasy DB? Rozszerza ją?
Nie. Nie ma z nią nic wspólnego i jako taka nie powinna po niej dziedziczyć.

Do klasy macierzystej (rodzicielskiej) odwołujsze się przez słowo kluczowe parent

  1. <?php
  2. class A{
  3.  
  4. function pisz(){print "Hello world!";}
  5.  
  6. }
  7.  
  8. class B extends A{
  9. function __construct(){
  10. parent::pisz();
  11. }
  12. }
  13. $obiekt=new B();
  14. //wyświetli Hello world!
  15. ?>


Pozdrawiam.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 16.10.2025 - 15:01