Abstrakčios klasės ir sąsajos Panašumai: (1) gali būti paveldimas (2) negali būti sukurtas (3) gali būti metodų deklaracijų (4) Išvestinė klasė turi įgyvendinti neįgyvendintą metodą Kategorija: (1) Abstrakčios bazinės klasės gali apibrėžti laukus, savybes ir metodų įgyvendinimą. Sąsajos gali apibrėžti tik atributus, indeksavimo priemones, įvykius ir metodų deklaracijas, jose negali būti laukų. (2) Abstrakti klasė yra nepilna klasė, kurią reikia toliau tobulinti, o sąsaja yra elgesio norma. "Microsoft" pasirinktinės sąsajos visada ateina su galimu lauku, įrodančiu, kad jie yra išraiškos "Aš galiu tai padaryti..." ” (3) Sąsajos gali būti įgyvendintos kelis kartus, o abstrakčios klasės gali būti paveldėtos tik vieno asmens (4) Abstrakčios klasės yra labiau apibrėžtos tarp glaudžiai susijusių klasių serijos, o dauguma sąsajų yra laisvai susijusios klasės, kurios visos įgyvendina tam tikrą funkciją (5) Abstrakčios klasės yra sąvokos, abstrahuojamos iš susijusių objektų serijos, todėl jos atspindi vidinį daiktų bendrumą; Sąsaja yra funkcinė konvencija, apibrėžta išoriniams skambučiams patenkinti, todėl ji atspindi išorines daiktų savybes (6) Sąsaja iš esmės neturi jokių specifinių paveldėjimo savybių, ji tik žada metodus, kuriuos galima pavadinti (7) Sąsajos gali būti naudojamos atgaliniams iškvietimams palaikyti, tačiau paveldėjimas šios funkcijos neturi (8) Konkretūs metodai, kuriuos įgyvendina abstrakčios klasės, yra virtualūs pagal nutylėjimą, tačiau sąsajos metodai klasėje, kuri įgyvendina sąsają, yra nevirtualūs pagal nutylėjimą, žinoma, taip pat galite paskelbti juos virtualiais (9) Jei abstrakti klasė įgyvendina sąsają, sąsajos metodas gali būti susietas su abstrakčia klase kaip abstraktus metodas jo neįgyvendinant, o sąsajos metodas gali būti įgyvendintas abstrakčios klasės poklasis
|