Sobes.tech
Junior — Middle

Milyen különbségek vannak az absztrakt osztály és az interfész között az objektumorientált programozásban?

sobes.tech MI

Válasz az MI-től

Az absztrakt osztály és az interfész külön mechanizmusok a szerződések és viselkedés leírására az OOP-ben, de kulcsfontosságú különbségekkel:

  • Absztakt osztály tartalmazhat absztrakt (megvalósítás nélküli) és konkrét metódusokat is. Lehet állapota (mezői). Az osztályok öröklik az absztrakt osztályt és felülírhatják a metódusokat.

  • Interfész csak a metódusok halmazát írja le megvalósítás nélkül, és nem tartalmaz állapotot. Az interfészt megvalósító osztálynak minden metódusát implementálnia kell.

Példák a különbségekre:

  • Az absztrakt osztály akkor megfelelő, ha alapértelmezett megvalósítást és közös állapotot akarunk meghatározni az örökösök számára.
  • Az interfész a képességek leírására szolgál, amelyeket különböző osztályok valósíthatnak meg, anélkül, hogy öröklési kapcsolatban lennének.

Például az Flyable interfész leírhatja a fly() metódust, míg az Bird absztrakt osztály tartalmazhatja a wingSpan mezőt és a sing() metódust megvalósítással.