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

  • TBG

    senior tag

    válasz pvt.peter #3358 üzenetére

    Az interfész osztály és az absztrakt osztály közötti különbségek.
    E kettő dolog között a különbség "szinte" csak az abstract és az interface kulcsszavak.
    Mi még köztük a különbség? Melyiket érdemes használni?

    Azért ez nem így van. Az interfész gyakorlatilag csak meghatároz megvalósítandó metódusokat.
    Ezzel szemben az absztrakt osztályban lehetnek absztrakt metódusok, amiket meg kell valósítani az örökösnek, DE lehetnek benne nem absztrakt metódusok is, amik valami konkrétumot csinálnak.

    Persze ezt lehet variálni, amikor egy absztrakt osztály megvalósít egy interfészt, de az implementációk absztraktok lesznek.....így azokat az örökösben kell implementálni...és ott már gyakorlatilag nem látszik, hogy az eredetileg az absztrakt osztály absztrakt metódusait valósítom meg vagy az absztrakt osztály által implementált interfész metódusait :)

    És melyiket érdemes? Erre nincs egységes recept. Általánosságban elmondható, hogy ha többszörös öröklődést akarsz megvalósítani(ami Javában alapból nincs), akkor interfész, de ha tuti, hogy csak egy őst akarsz, de kellenek default metódusok is, akkor absztrakt. Perszem azt is lehet, hogy

    Interface-->default class implements interface-->örökös

    vagy

    absztrakt class-->örökös

    vagy

    Interface->absztrakt class absztrakt metódusok-->örökös

    szóval...a lehetőségek végtelen tárháza :)

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

Hirdetés