Miért egy absztrakt osztály java - verem túlcsordulás orosz
Java tanulási közelmúltban. Dugtam az a tény, hogy nem tudom megérteni a szerepe az absztrakt osztály java. A könyvben (nem csak egy) talált egy példát, amely leírja a szerepe az absztrakt osztály:
De átszámolva egy absztrakt osztály rendes, és még törlésével összesen programot nem szűnt meg a munka:
Kérjük, írja le egy példát, amelyben az eltávolítása egy absztrakt osztály (vagy „bütyköl” normál) lehetetlen, és azt eredményezi, hogy egy hiba, vagy csak magyarázza, hogy a helyzeteket, amikor egy közönséges osztály nem helyettesíti az absztrakt. Köszi előre.
meghatározott október 16 '11 at 09:55
Mi a tankönyv, ha nem titok? A tisztességes Java-könyvek még mindig gerincét a PFSZ.
A lényeg ez. Ha megjelöli egy osztály absztrakt. Ön ezennel tilos létrehozni példányok. Mivel működés osztály nincs definiálva számítani módszer. akkor nem lesz képes létrehozni az esetekben is:
Ha egy osztály nem absztrakt módszerek, a „bütykölés” annak szokásos módon önmagában nem mutat kifelé. Egyszerűen képesek lesznek létrehozni egy példányát az osztályban.
Ez az Ön „változást” Azonosították a test kiszámításához módszer. ami megváltoztatja a logika a többi a hierarchiában. Ha most létrehoz egy másik gyermek a műveleti osztály és határozza meg, számítani módszer. fogja használni egy megvalósítása a szülő osztály, amely kiszámítható a termék két érv.
és még távolítsa el teljesen a program nem szűnt meg a munka:
Nem hiszem el. Ha eltávolítjuk a műveleti osztály meg kellett volna határozni a gyermek osztályok (húzódik, hogy tisztítsák meg és szerkesztheti fő). Szintén után osztályok összeadás és kivonás a függetlenné vált egymástól.
Általában absztrakt osztályok széles körben használják, amikor szükség van, hogy végre néhány közös funkcionalitást a család osztályban.
Bemutatója - A előadássorozat a MIPT programozás java Igazából nem annyira ( „akkor meg kell szerkeszteni a gyermek osztályok (húzódik, hogy tisztítsák meg és szerkesztheti fő)”). vagyis más szavakkal, egy absztrakt osztály tilos másolatot létrehozni a maguk és általánosítja hasonló funkcionalitást (gyerek) osztály? és egy másik kérdés alapján a fent írt programok (az enyém): Milyen előnyei vannak a „csonka” objektum művelet o3 = new kivonás (); át a „teljes”? Kivonás o3 = új kivonás (); - arachnoden október 16 '11 10:35
Az objektum nem nyírt. Ez a használat elvének polimorfizmus. Kijelentjük egy objektumot tartozó szélesebb osztályára és rendeljen hozzá egy konkrét megvalósítása a gyermek osztályban. Ez biztosítja felcserélhetőségére gyermek osztályok: nem érdekel, hogy megcsúszott, következetesen dolgozni tárgyakat. Meg kell kezdeni foglalkozni az alapelveket a PFSZ. Ami a Java Eckel olvasni valamit ( „Java filozófia”). - Nofate ♦ október 16 '11 at 10:39
Kollégák, véleményem természetesen nem egészen igaz helyezte a hangsúlyt. Az első absztrakt osztály - ez természetesen nem egy osztály, amely nem hozható létre, és az osztály megvalósítása elválik a nyilatkozatát.
Absztrakció az általános értelemben vett, ez az elkülönítés a részletesen. A mi esetünkben ez a nyilatkozat az osztály nem kell aggódni annak végrehajtását. De a végrehajtás minden esetben eltérő lehet - néha bonyolult, néha egyszerű. Egy absztrakt osztály nincs végrehajtás.
Megpróbálok egy példát valós életben:
- Tegyük fel, hogy szeretnénk azokat a módszereket, a gyülekezési és szétszerelés a különböző bútorok, amelyek egy adott osztályba bútorok
- Ebben az esetben a tipikus bútorok absztrakt osztály két elméleti módszerek: össze- és szétszerelhető. Mivel a módszerek összeszerelés és szétszerelés bútorok függ a konkrét modell, nem lehet leírni a tantermi bútorok, így nyilvánítja őket elvont.
- További adott osztályban asztalra. amely örökli osztály bútorok. amely alkalmazható módszerek Gyűjtse / érteni - Nos, valami ilyesmi: rögzítse a lábát, majd lo és így tovább.
- További Sofa adott osztályban. amely örökli osztály bútorok. ahol ismét végrehajtási módszerek Collect / szétválogatás - most: rögzítse ülés, karfa majd így tovább.
Ezután kezdődik a legérdekesebb és legfontosabb, amit valójában az egész cirkusz a lovak és született:
- Ha nem volt absztrakt osztályok a főösszeállítás hozzuk asztal és kanapé. Nos típus - mester úgy látja, hogy ez a táblázat veszi utasítást az összeszerelés és gyűjtése. Azt kell tudni, hogy pontosan, hogy ez egy tábla vagy egy kanapé egyébként cső - szerelvény nem kerül sor.
- Ha van egy absztrakt osztály varázsló nem hoz egy asztal vagy kanapé. és csak egyfajta bútorok. Mester általában, hogy a dob egy asztal vagy egy kanapé vagy akár egy szekrény. Mester előveszi bútorok csatlakozik a használati utasításon és gyűjti azt.
Válaszol december 24 '13 at 08:56
Például, írja a számla repülőgép a repülőtéren rendszert. Vannak teher- és személyszállító repülőgépek és kell, például, hogy volt egy listát a repülőgépek, amelyek ma már a repülőtéren. Így az absztrakt osztály „repülőgép” (nem tudjuk előre, mi a repülőgép repül), és meghatározza néhány alapvető mező használható bármilyen repülőgép (repülési sebesség és hosszát, például)
Ezután elkészítünk két osztály, egy utasszállító repülőgép, a másik az a rakomány, és mindegyik spetseficheskie hozzáfűzi paraméterek rá
Továbbá, abban az osztályban, hogy mindezt az üzleti fog működni, hozzon létre egy listát, és dugjon hogy e síkok repülőtérre
Most elvileg egyértelmű, hogy van egy lista a repülőgép, és amelyeket - nem is annyira fontos. Számomra a fő jellemzője az absztrakt osztályok az, hogy használja őket, akkor adja meg a logika, nem veszik észre azt.
Válaszol október 16 '11 at 10:33
Kérjük, ne felejtsük el, hogy végre a kódot. - Nofate ♦ október 16 '11 at 10:43
Köszönöm, meg kell tanulni egy kicsit többet. - arachnoden október 16 '11 at 11:17
Valójában a fő különbség egy absztrakt osztály a szokásos rejlik csak az a tény, hogy lehetetlen, hogy hozzon létre egy absztrakt osztály objektum, ezért csak a felülbírálja. És az első példa a rossz, mert nincs kapcsolat az osztályok közötti összeadás, kivonás és működése. Egy példa látható, például itt.