Sobes.tech
Junior

Mi a különbség az absztrakt osztályok és az interfészek között?

sobes.tech MI

Válasz az MI-től

Absztrakt osztály:

  • Tartalmazhat absztrakt (megvalósítás nélküli) és konkrét (megvalósítással rendelkező) metódusokat.
  • Tartalmazhat mezőket (példányváltozókat).
  • Lehetnek konstruktorai.
  • Egyszerű öröklést tesz lehetővé (egy osztály örökölhet egy absztrakt osztálytól).
  • Alapstruktúrák és általános viselkedés meghatározására használják a kapcsolódó osztályok számára.

Interfész:

  • Csak absztrakt metódusokat tartalmazhat (egyes nyelvek, például Java 8-tól, lehetővé teszik az alapértelmezett és static metódusokat implementációval).
  • Nem tartalmazhat példánymezőket (csak konstansokat).
  • Nem lehetnek konstruktorai.
  • Többszörös implementációt tesz lehetővé (egy osztály több interfészt is megvalósíthat).
  • Azt a szerződést határozza meg, amit a osztályoknak teljesíteniük kell.