Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> klasy abstrakcyjne
Jarod
post
Post #1





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

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


Tworząc interfejs używamy słowa abstract przy definicji metod.

Po co używa się tego słowa przy definicji klas (lub funkcji - w przypadku gdy nie jest to interfejs) ?
W jakim celu tworzyć abstrackyjne klasy?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Ludvik
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 698
Pomógł: 3
Dołączył: 28.03.2004
Skąd: Wrocław

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


Cytat
Wychodzi na to, że lepiej używać klas abstrakcyjnych niż interfejsów.

A skąd ten wniosek? To są narzędzia do dwóch podobnych, ale jednak różnych celów. Jeżeli chcesz zdefiniować tylko wymagany interfejs klasy, to używasz interfejsów. Jeżeli potrzebujesz utworzyć szkielet klasy, wtedy definiujesz klasę abstrakcyjną. Pamiętaj o jednej, znaczącej przewadze interfejsów. Możesz implementować wiele interfejsów w jednej klasie. Wielodziedziczenie w php nie istnieje.

W moich projektach na 10 (jeżeli nie więcej) interfejsów przypada mniej więcej jedna klasa abstrakcyjna.
Go to the top of the page
+Quote Post
Jarod
post
Post #3





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

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


Cytat(Ludvik @ 10.08.2006, 18:29 ) *
Pamiętaj o jednej, znaczącej przewadze interfejsów. Możesz implementować wiele interfejsów w jednej klasie.


Przecież zapis nie ma prawa bytu
  1. <?php
  2. class NazwaKlas implements Interfejs1, Interfejs2
  3. {
  4.  
  5. }
  6. ?>
Go to the top of the page
+Quote Post

Posty w temacie
- J4r0d   klasy abstrakcyjne   9.08.2006, 19:44:56
- - Apo   W przeciwieństwie do interfejsów w klasach abstrak...   9.08.2006, 19:56:25
- - envp   Heh wytlumaczone dobrze, ale dziwnie. J4r0d: poj...   10.08.2006, 03:10:21
|- - J4r0d   Cytat(envp @ 10.08.2006, 02:10 ) Heh wytl...   11.08.2006, 21:03:44
|- - Apo   Cytat2. Co dokładnie daje dodanie słowa static po ...   12.08.2006, 09:39:59
|- - J4r0d   Cytat(Apo @ 12.08.2006, 08:39 ) Nie musis...   24.08.2006, 20:20:40
- - Ludvik   Klasy abstrakcyjne nie są wygodnym narzędziem do d...   10.08.2006, 10:01:30
- - J4r0d   Mniej więcej łapie. Wychodzi na to, że lepiej używ...   10.08.2006, 19:17:10
- - Ludvik   CytatWychodzi na to, że lepiej używać klas abstrak...   10.08.2006, 19:29:19
|- - J4r0d   Cytat(Ludvik @ 10.08.2006, 18:29 ) Pamięt...   10.08.2006, 22:40:38
- - Ludvik   A sprawdziłeś czy to działa? Na mój gust działa......   10.08.2006, 22:46:40
|- - J4r0d   Cytat(Ludvik @ 10.08.2006, 21:46 ) A spra...   10.08.2006, 23:11:05
- - Ludvik   Kilka tematów niżej jest przykładowa odpowiedź.   10.08.2006, 23:14:54
- - Cysiaczek   Sporo sensu to ma. np. interfejsy: 1. save(), loa...   10.08.2006, 23:17:10
- - Ludvik   W definicji interfejsów nie używamy słowa abstract...   11.08.2006, 21:06:21
- - Cysiaczek   A do pozostałych nie - o to właśnie chodzi.Własni...   24.08.2006, 20:35:47
|- - J4r0d   Cytat(Cysiaczek @ 24.08.2006, 19:35 ) Jeś...   24.08.2006, 20:52:00
- - dr_bonzo   Nie ma klas statycznych, moga byc tylko metody sta...   24.08.2006, 20:51:28
- - Cysiaczek   Faktycznie - trochę nieściśle si...   24.08.2006, 21:27:43
- - thornag   @J4r0d Wracajac jeszcze do pytania abstrakcyjne. P...   25.08.2006, 15:53:26
|- - J4r0d   Cytat(thornag @ 25.08.2006, 14:53 ) Jasny...   25.08.2006, 22:59:29
- - thornag   Wroce do przykladu z ksiazki. Masz jakis mechanizm...   26.08.2006, 10:24:39


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: 23.12.2025 - 23:27