![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 22.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Właśnie zacząłem zgłębiać tajniki programowania obiektowego i natrafiłem na problem z interfejsami i klasami abstrakcyjnymi. Otóż nie wiem kiedy stosować interfejs a kiedy klasę abstrakcyjną. Szukałem w internecie i przeczytałem kilka wątków (na ten temat) na forum jednak nie znalazłem dokładnej odpowiedzi na moje pytanie. Więc czy ktoś mógłby mi wytłumaczyć różnice między interfejsem a klasą abstrakcyjną (i kiedy się je stosuje)? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Może autorowi rozjaśni trochę sytuację wzorzec Template Method, typowe użycie klas abstrakcyjnych. Powinno raczej używać się interfejsów, bo są wygodniejszym narzędziem, głównie dlatego, że udostępniają wielokrotną implementację i dziedziczenie. Klasy abstrakcyjne wprowadza się raczej w chwili, gdy potrzebujemy zdefiniować pewien interfejs, ale w klasach dziedziczących może wystąpić duplikacja kodu. Wtedy kod umieszczamy w klasie abstrakcyjnej i nie przesłaniamy wybranych metod.
Chyba, że mamy inne zastosowanie, takie jak np. wspomniany przeze mnie wzorzec... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 12:36 |