Skirtumas tarp abstrakčios klasės ir sąsajos C #

Anotacija

Abstraktioji klasė yra ta, kuri skirta tik pagrindinei kitų klasių klasei. „Abstraktus“ modifikatorius naudojamas klasės abstrakčiai sudaryti. Abstraktus modifikatorius nurodo, kad trūksta kažkokio diegimo, kurį reikia įdiegti iš jo išvestoje klasėje. Abstrakčioje klasėje gali būti abstrakčių ir abstrakčių narių. Abstrakčioji klasė turėtų turėti bent vieną abstraktųjį metodą, priešingu atveju nereikia klasifikuoti tos klasės kaip „abstrakčios“.

C # abstrakčios klasės pavyzdys:
Kaip parodyta aukščiau pateiktame pavyzdyje, išvestinėje klasėje „MyArea“ yra panaikintas abstraktus metodas „Plotas“, esantis „MyCircle“ klasėje..

Sąsaja

Sąsajoje yra tik narių deklaracijos, įskaitant metodus, ypatybes, įvykius ar rodykles. Joje nėra šių narių įgyvendinimo. Klasė ar konstrukcija įgyvendina sąsają, turi pateikti sąsajoje deklaruojamų metodų apibrėžimus. Tai reiškia, kad sąsaja suteikia standartinę struktūrą, kurios turi laikytis išvestinė klasė.

C # sąsajos pavyzdys:
Kaip parodyta aukščiau pateiktame pavyzdyje, sąsaja „MyData“ turi dviejų metodų deklaraciją getdata () ir showdata (). Klasė „NameData“, kuri diegia šią sąsają, turėtų pateikti metodų, deklaruotų „MyData“ sąsajoje, apibrėžimą.

Skirtumas tarp abstrakčios klasės ir sąsajos

  1. Abstrakčioje klasėje gali būti ir abstrakčių, ir abstrakčių narių. Tačiau sąsajoje visi nariai yra netiesiogiai abstraktūs ir turi būti ignoruojami išvestinėje klasėje.
  2. Klasė gali paveldėti keletą sąsajų, bet tik vieną abstrakčią klasę.
  3. Abstrakčioje klasėje gali būti metodų su apibrėžimu arba su jo apibrėžtimi. Tačiau sąsajoje gali būti tik metodo parašas.
  4. Abstrakti klasė gali būti visiškai, iš dalies arba visai neįgyvendinta, tačiau sąsaja turėtų būti visiškai įgyvendinta, t.y. visi nariai turi būti apibrėžti išvestinėje klasėje..
  5. Sąsajoje negali būti prieigos modifikatorių, tačiau abstrakčioji klasė gali ją turėti funkcijoms, ypatybėms ar įvykiams.
IT