Eltérések a absztrakt osztály interfész
Full-stack fejlesztő (Symfony, Sarki)
Mi a különbség egy absztrakt osztályt a felület Java?
Minden nyugszik a „stílus”. A régi időkben, vagyis idején Simula nyelv, amelynek inspirációt merítettek az alkotók a C ++ csak osztályok. Alapján, valamint az osztályok a rendszerrel. És az öröklési mechanizmus megvalósítása végrehajtott kizárólag a memóriát, ami akkoriban nagyon drága volt.
Annak érdekében, hogy a polimorfizmus, akkor képesnek kell lennie arra, hogy állapítsa meg az absztrakt típus. Mondván: „minden szar, hogy van ez a típusú fog működni, ahogy kellene.” Mert voltak absztrakt osztályok nyelvek, mint a C ++. Mert néha akarunk csinálni egy kompozíció absztrakt típusok in C ++ végre többszörös öröklés.
A Java, a melyek nagyban merít a C ++ és Smalltalk, úgy döntöttünk, hogy vezessenek be egy másik szervezet - interfészek. Ezt a fajta egyszerűsített módon lehet szabályozni az absztrakt alap osztály. Az eredmények szerint a nem oldja meg a problémát a gyémánt (vagy rombusz) több örökséget, úgy döntött, hogy feladja, és hagyja, hogy az osztályok implementit több interfész.
Ennek köszönhetően képesek vagyunk megtenni mindkét dal akarunk. Ez a különbség jön le, hogy az a tény, hogy ha örökölnek egy absztrakt osztály, csak örökölni osztályok, míg interfészek lehetővé teszik mi osztályok implementit absztrakt típus.
Általában absztrakt osztályok van szükség, amikor szükség van örökséget. Általában ez olyan helyzetekben, ahol van egy osztályok száma, amelyeknek egy közös absztrakt adattípus (azaz nem tudja kiválasztani a leggyengébb korlátozások az őse). Például, ha teszünk egy lánc osztályok karakterlánc <- Email, то тут нет смысла в абстрактных классах так как тип String уже включает в себе подмножество типов Email.
Általában java8 már bevezette a képesség, hogy az alap végrehajtásának interfészeket, hogy ne lepődj meg, ha idővel a kulcsszó kiterjed, elvileg megtagadják, hogy elveszíti a lényeg.
A rendszergazda és a felhasználó nem túl jó példa. Nem szükséges, hogy tanítsa a szegény. Régebben magam rake halad írásakor beszélgetés a beadásra. A legjobb politika - klasszikus szerepek rendszer. Amennyiben a szerepe az egyes mező a modellben. Nem öröklés ebben az esetben nem szükséges. És mi lesz, ha a szükség moderátorok, moderátorok, stb Az osztály minden. D
Minden attól függ, milyen típusú. Minden tárgy egy típus. Interface = egyfajta absztrakt osztály - típus + végrehajtását. Ez elég egyszerű. Juzat hogy ez attól függ, hogy mi legyen a típus hierarchia. Ha szükség van egy alap végrehajtására (általános szabályok), majd válassza ki egy absztrakt osztály. Más esetekben, amikor meg kell határozni az alap típus - interfészek.
Öröklési káros dolog, és a legjobb elkerülni, ha lehetséges.