absztrakt osztály

absztrakt osztály egy osztály, amely deklarált absztrakt – lehet, hogy nem tartalmazza absztrakt módszerek. Az absztrakt osztályokat nem lehet instantálni, de alosztályozhatók. Egy absztrakt osztálynak lehetnek statikus mezői és statikus módszerei. Amikor egy absztrakt osztály alosztályba kerül, az alosztály általában implementációkat biztosít a szülőosztály összes absztrakt metódusához. Ha azonban nem, akkor az alosztályt absztraktnak kell nyilvánítani.,

az absztrakt módszer olyan módszer, amelyet végrehajtás nélkül deklarálnak (zárójelek nélkül, majd pontosvessző követi), mint például:

abstract void sum(int a, int b);

ha ezek közül bármelyik állítás vonatkozik a helyzetére:

  1. több szorosan kapcsolódó osztály között szeretné megosztani a kódot.
  2. elvárja, hogy az absztrakt osztályt kiterjesztő osztályok számos közös módszerrel vagy mezővel rendelkezzenek, vagy a nyilvános (például védett vagy privát) hozzáférésmódosítóktól eltérő hozzáférési módosítókat igényelnek.
  3. nem statikus vagy nem végleges mezőket szeretne deklarálni., Ez lehetővé teszi olyan módszerek meghatározását, amelyek elérhetik és módosíthatják annak az objektumnak az állapotát, amelyhez tartoznak.

Interface

egy interfész csak egy objektum módszereinek deklarálása; ez nem a végrehajtás. Egy felületen meghatározzuk, hogy milyen műveletet hajthat végre egy objektum. Ezeket a műveleteket az interfészt megvalósító osztályok határozzák meg. Az interfészek szerződést alkotnak az osztály és a külvilág között, és ezt a szerződést a fordító építéskor érvényesíti.,

fontolja meg az interfészek használatát, ha ezen állítások bármelyike vonatkozik az Ön helyzetére:

  1. azt várja, hogy a független osztályok végrehajtják az interfészt. Például az összehasonlítható és klónozható interfészeket számos független osztály valósítja meg.
  2. meg szeretné adni egy adott adattípus viselkedését, de nem aggódik amiatt, hogy ki hajtja végre a viselkedését.
  3. több öröklés előnyeit szeretné kihasználni.,

eredetileg megjelent június 2016

további olvasás

  • amikor (nem) használni Java absztrakt osztályok
  • Java: Interface Vs. absztrakt osztály
  • Hogyan válasszunk a felület és absztrakt osztályok Java