Junior
Kuo skiriasi abstraktūs klasės nuo sąsajų?
sobes.tech AI
Atsakymas iš AI
Abstracti klasė:
- Gali turėti abstrakčių (be įgyvendinimo) ir konkrečių (su įgyvendinimu) metodų.
- Gali turėti laukų (pavyzdžio kintamųjų).
- Gali turėti konstruktorius.
- Leidžia viengubo paveldėjimo (viena klasė gali paveldėti iš abstrakčios klasės).
- Naudojama apibrėžti bazinę struktūrą ir bendrą elgesį susijusioms klasėms.
Sąsaja:
- Gali turėti tik abstrakčius metodus (kai kurios kalbos, pvz., Java nuo 8 versijos, leidžia numatytus ir statinius metodus su įgyvendinimu).
- Negali turėti pavyzdžio laukų (tik konstantas).
- Negali turėti konstruktorių.
- Leidžia daugybinį įgyvendinimą (viena klasė gali įgyvendinti kelias sąsajas).
- Naudojama apibrėžti sutartį, kurią turi įgyvendinti klasės.