Hirdetés

Új hozzászólás Aktív témák

  • floatr

    veterán

    válasz Jim-Y #4891 üzenetére

    Az új osztály definíciójánál az ősosztály paraméteres. Vagy konkretizálod, hogy mi a paraméter, vagy hagyod eredeti formájában. A paraméterre vonatkozó megszorítást (Termek) csak az éppen definiált osztálynál tehetsz. Ez a megszorítás annyit tesz, hogy a fordító csak olyan Raktar objektumot enged létrehozni, aminek a paramétere Termek típusú, vagy annak leszármazottja. Ha Gyumolcs paraméterrel hozod létre, akkor onnantól kezdve már nem adhatsz hozzá bármilyen Termek leszármazottat, csak ami a Gyumolcs-ből ered.

    Ha pl a Kifli is termék (de ugyebár nem Gyumolcs), akkor ez nem fog fordulni:

    new Raktar<Gyumolcs>().add(new Kifli());

    mert ez egy "gyümölcsraktár" példány, ahová kiflit nem lehet raktározni

    szerk.:
    a paraméteres leszármaztatásnál vagy az osztály definíciójakor szabod meg, hogy mi a paraméter, vagy az osztály is paraméteres lesz. Ha paraméteresen hagyod, akkor megmondhatod, hogy milyen ősosztályból lehet paraméter használni, amikor az osztályt létrehozod. A megszorítást meg azért az új osztálynál kell bevésni, mert arra vonatkozik a megszorításod, nem az ősosztályra.

    [ Szerkesztve ]

Új hozzászólás Aktív témák