8-as előadás Flashcards
Java osztályok közötti öröklés:
A subclass megörökli a superclass fieldjeit és methodjait.
Minden subclassnak egyetlen egy superosztálya van. Ha nincsen más szuperosztály (explicit módon definiálva) akkor az Object osztálynak a subclassa.
Leszármazott osztálynak is lehet leszármazottja.
Az újrafelhasználásnak a megvalósítása.
Minden részét megörökli a superclassnak a subclass. Azonban a konstruktor nem ‘member’ így az nem öröklődik.Viszont meghívható. Privát részt nem örököl.
Java osztályok közötti öröklés esetén konstruktorok hogyan öröklődnek?
Nem öröklődik, azonban a subclassból meghívható a superclass konstruktora.
Java osztályok közötti öröklés esetén mit jelent a metódus felülírása?
Ugyan azzal a névvel, és paraméterlistával hozunk létre metódust a subclassban. @Override annotáció használandó. Ha nem írja felül a superclass metódusát a subclass-é akkor hibára futunk.
Java szuperosztály és alosztály is definiál egy ugyanolyan nevű statikus metódust. Hívható-e és ha igen hogyan a szuperosztály metódusa? Ha csak a szuperosztály definiál egy statikus metódust, akkor az alosztállyal tudjuk-e hívni?
Meghívható super kulcsszóval.
Java szuperosztály és alosztály is definiál egy ugyanolyan nevű, de más típusú adattagot, Használhatom-e és ha igen, hogyan az alosztályból a szuperosztály adattagját?
Hasznáálható típuskonverzió segítségével.
Mit jelent a konstruktorok lánca (chain of constructor)?
A superclass konstruktorának meghívása a subclass konstruktorának elős sorában kell, hogy legyen.
super()
Ha ez nem történik meg akkor a compiler egy paraméter nélküli hívást csinál a superclassnak. Ha a superclassnak nincs ilyen konstruktora kivételre fut.
Amikor egy subclassból meghívunk egy superclassbeli konstruktort akkor az is meghívja a felettelévőt egészen az Object classig, így hívási lánc jön létre.
Java öröklésnél, metódus felülíráskor a láthatósági módosító változhat-e, és ha igen, hogyan?
Módosítható, azonban csak felfelé.
public -> public
protected -> public
private -> protected, public
Ezek lehetségesek.
Mit jelent Javaban a polymorfizmus?
Subclassoknak lehet saját metódusaik is, azonban lehet a superclassal azonos metódus is benne.
Java absztrakt osztály, absztrakt metódus:
Abstract deklarációval ellátott metódus vagy class. Egy abstract classban vagy van vagy nincs abstract metódus. Ezek nem példányosíthatóak. Öröklésre szolgál.
Abstract metódusnak nincsen implementációja:
abstract void moveTo(double deltaX, double deltaY).
Ha van abstract metódus akkor classnak is abstraktnak kell lennie.
A subclassnak implementálnia kell minden abstrakt metódust, ha ezt nem teszi meg, akkor ez is abstrakt lesz.