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

  • Lacces

    őstag

    Sziasztok!

    Téma Polimorfizmus

    Osztály:
    public class Szerelveny {

    protected int kocsikSzáma;
    protected boolean földAlatti;

    public Szerelveny(int kocsikSzáma) {
    this(kocsikSzáma, false);
    }

    public Szerelveny(int kocsikSzáma, boolean földAlatti) {
    this.kocsikSzáma = kocsikSzáma;
    this.földAlatti = földAlatti;
    System.out.println("Új szerelvény: " + this);
    }

    @Override
    public String toString() {
    return "szerelvény (" + kocsikSzáma + " kocsi, " + (földAlatti ? "földalatti" : "felszíni") + ")";
    }

    public Szerelveny összefűz(Szerelveny sz) {
    boolean b = földAlatti && sz.földAlatti;
    System.out.println("Sz + Sz: " + this + " + " + sz);
    return new Szerelveny(kocsikSzáma + sz.kocsikSzáma, b);
    }
    }

    Main osztály függvénye:

    Szerelveny szsz = new Szerelveny(3);
    Szerelveny szm = new MetroSzerelveny(4);

    System.out.println(szsz.összefűz(szm));

    Eredmény:

    // Első utasításra
    Új szerelvény: szerelvény (3 kocsi, felszíni)

    // Második utasításra
    Új szerelvény: metró (4 kocsi, földalatti)
    Új MetroSzerelveny: metró (4 kocsi, földalatti)

    // Harmadik utasításra
    Sz + Sz: szerelvény (3 kocsi, felszíni) + metró (4 kocsi, földalatti)
    Új szerelvény: szerelvény (7 kocsi, felszíni)
    szerelvény (7 kocsi, felszíni)

    Az első kettő utasításra a kiírás az tiszta sor.
    Viszont a harmadik utasításnál nem értem, a "szerelvény(7 kocsi, felszíni)" sort minek írja még ki? Az "Sz+Sz..." és "Új szerelvény: szerelvény(7 kocsi, felszíni)" is rendben van, de az utolsót nem értem, hogy azt miért írja ki.

    Debugot még próbálgatom, de az Eclipsenek már 5. alkalommal "fagy le".

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

Hirdetés