![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 358 Pomógł: 0 Dołączył: 3.07.2003 Skąd: Szczecin->niebuszewo->*(next to window) Ostrzeżenie: (0%) ![]() ![]() |
Mam pewien problem ze stosowaniem klas abstrakcyjnych i interfejswo. Jakie jest kryterium wyboru miedzy tymi dwoma mechanizmami obiektowymi bo jak dobrze rozumiem jest miedzy nimi praktycznie (PHP5) jedna roznica mianowicie w klasie abstrakcyjnej czesc metod moze byc juz zaimplementowana tymczasem w interfejscie mymy doczynienia zawsze z prototypami, innymi slowy interfejs to klasa abstrakcyjna bez mozliwosci implementacji w niej metod. Czy dobrze rozumiem? to jest jedyna roznica?
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 581 Pomógł: 0 Dołączył: 21.07.2003 Skąd: Jasło Ostrzeżenie: (0%) ![]() ![]() |
Klasy abstrakcyjne możesz tworzyć jak zwykłe klasy czyli:
I teraz nie możesz jak przy zwykłej klasie utwórzyc jej czyli zaimplementować w sposób:
Bo są one stworzone wyłącznie do deklarowania i dziedziczenia przez inne klasy, i może się to przydać gdy nie chcemy tworzyć obiektu tej klasy tylko odziedziczyc ją. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Interfejsy, jest to bardzo ciekawa rzecz w PHP5 która się przydaje i przyspiesza kod o wiele.Działają one na zasadzie deklarowania metod, i pózniejszym nadpisaniu, pozwala to przyspieszyć kod o niezbędne tworzenie metod w klasie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Możesz to użyć np. przy tworzeniu jakiegoś mechanizmu. DB_DRIVER:
I w tym intefejsie po zaimplementowaniu do klasy np. Mysql metody będą nadpisywane a nie tworzone (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Co przyspieszy twój kod. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Czyli podsumowując Interfejsy używamy by przyspieszyć kod o niezbędne tworzenie metod w klasie. A klasy abstrakcyjne sa po to by nie tworzyć zbędnych obiektów, co daje nam odziedziczanie klas abstrakcyjnych. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Jak coś nie rozumiesz to strzelaj sprobuje odpowiedzieć (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Można by było na temat interfejsów i klas abstrakcyjnych napisać bardzo dużo i o ich zastosowaniu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Jakby co to poprawcie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował kubatron 1.03.2005, 22:49:13 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 09:15 |