Hirdetés

Keresés

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

  • WonderCSabo
    félisten

    Sziasztok, miért van az, hogy ez helyes:

    public class RaktarV extends ArrayList<Termek> { }

    ugye ez ha minden igaz azt, jelenti, hogy a RaktarV egy objektuma egy olyan ArrayList-et valósít meg ami Termek tipusú elemeket tárolhat.

    de ez már helytelen:

    public class RaktarV extends ArrayList<T extends Termek> { }
    helyette ez a helyes
    public class Raktar<T extends Termek> extends ArrayList<T> { }

    a kérdés csak annyi lenne, hogy akkor utóbbi esetben máshogyan kell szintaktikailag jelenzni és kész, vagy van valami más különbség is?

    Ugye a második esetben a Raktar egy objektuma egy olyan ArrayListet valósít meg ami Termek, vagy Termek subclass tipusu elemeket tárolhat.

    Nekem az nem világos, hogy miért nem így kell ezt is megadni:
    public class RaktarV extends ArrayList<T extends Termek> { }

    ?

    üdv

    public class RaktarV extends ArrayList<T extends Termek> { }

    Ez semmiképpen nem lehet helyes, hiszen a T típust sehol sem deklaráltad.

    Ebben az esetben nincs típusparamétere az osztálynak:

    public class RaktarV extends ArrayList<Termek> { }

    Ebben az esetben meg van:

    public class Raktar<T extends Termek> extends ArrayList<T> { }

    Mig az első esetben a RaktarV-be bármilyen Termek leszármazottat lehet rakni, a típusparaméteres verzióban csak az aktuális típusparamétert, vagy annak leszármazottjait, pl.

    RaktarV<Gyumolcs> raktar;
    raktar.add(new Termek()); // nem fordul

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