Sobes.tech
Junior

Kāda ir atšķirība starp abstraktām klasēm un saskarnēm?

sobes.tech AI

Atbilde no AI

Abstrakta klase:

  • Var saturēt abstraktās (bez realizācijas) un konkrētas (ar realizāciju) metodes.
  • Var saturēt laukus (instanču mainīgos).
  • Var saturēt konstruktorus.
  • Atļauj vienkāršu mantošanu (viena klase var manto no abstraktas klases).
  • Tiek izmantota, lai definētu pamata struktūru un kopējo uzvedību saistītajām klasēm.

Saskarne:

  • Var saturēt tikai abstraktās metodes (dažas valodas, piemēram, Java no versijas 8, ļauj noklusējuma un statiskās metodes ar realizāciju).
  • Nevar saturēt instanču laukus (tikai konstantes).
  • Nevar būt konstruktori.
  • Atļauj daudzveidīgu realizāciju (viena klase var realizēt vairākas saskarnes).
  • Tiek izmantota, lai definētu līgumu, kuru klasēm ir jāievēro.