Klasa abstrakte kundër ndërfaqes
Klasa abstrakte dhe Ndërfaqja janë dy konstruksione të orientuara nga objekti që gjenden në shumë gjuhë programimi të orientuara nga objekti si Java. Klasa abstrakte mund të konsiderohet si një version abstrakt i një klase të rregullt (konkrete), ndërsa një ndërfaqe mund të konsiderohet si një mjet për zbatimin e një kontrate. Klasa abstrakte është një klasë që nuk mund të inicializohet, por mund të zgjerohet. Ndërfaqja është një lloj që duhet të zbatohet nga klasa të tjera. Në Java, klasat Abstract deklarohen duke përdorur fjalën kyçe Abstract, ndërsa fjala kyçe e ndërfaqes përdoret për të përcaktuar një ndërfaqe.
Çfarë është një klasë abstrakte?
Në mënyrë tipike, klasat abstrakte, të njohura gjithashtu si klasat bazë abstrakte (ABC), nuk mund të instantohen (një shembull i asaj klase nuk mund të krijohet). Pra, klasat abstrakte kanë kuptim vetëm nëse gjuha e programimit mbështet trashëgiminë (aftësia për të krijuar nënklasa nga zgjerimi i një klase). Klasat abstrakte zakonisht përfaqësojnë një koncept ose entitet abstrakt me zbatim të pjesshëm ose aspak. Prandaj, klasat abstrakte veprojnë si klasa prind nga të cilat rrjedhin klasat e fëmijëve në mënyrë që klasa e fëmijës të ndajë tiparet jo të plota të klasës prind dhe funksionaliteti mund të shtohet për t'i plotësuar ato.
Klasat abstrakte mund të përmbajnë metoda abstrakte. Nënklasat që zgjerojnë një klasë abstrakte mund të zbatojnë këto metoda abstrakte (të trashëguara). Nëse klasa fëmijë zbaton të gjitha këto metoda Abstrakte, ajo është një klasë konkrete. Por nëse nuk ndodh, klasa e fëmijëve gjithashtu bëhet një klasë Abstrakte. E gjithë kjo do të thotë se, kur programuesi emëron një klasë si Abstrakt, ajo thotë se klasa do të jetë e paplotë dhe do të ketë elementë që duhet të plotësohen nga nënklasat trashëguese. Kjo është një mënyrë e mirë për të krijuar një kontratë midis dy programuesve, e cila thjeshton detyrat në zhvillimin e softuerit. Programuesi, i cili shkruan kodin për të trashëguar, duhet të ndjekë saktësisht përkufizimet e metodës (por sigurisht mund të ketë zbatimin e tij).
Çfarë është një ndërfaqe?
Një ndërfaqe është një lloj abstrakt që përdoret për të specifikuar një kontratë që duhet të zbatohet nga klasa, të cilat e zbatojnë atë ndërfaqe. Fjala kyçe e ndërfaqes përdoret për të përcaktuar një ndërfaqe dhe fjala kyçe Implements përdoret për zbatimin e një ndërfaqeje nga një klasë (në gjuhën e programimit Java). Zakonisht, një ndërfaqe do të përmbajë vetëm nënshkrime të metodës dhe deklarata të vazhdueshme. Çdo ndërfaqe që zbaton një ndërfaqe të veçantë duhet të zbatojë të gjitha metodat e përcaktuara në ndërfaqe, ose duhet të deklarohet si një klasë abstrakte. Në Java, lloji i referencës së një objekti mund të përcaktohet si një lloj ndërfaqeje. Por ai objekt ose duhet të jetë null ose duhet të mbajë një objekt të një klase, e cila zbaton atë ndërfaqe të veçantë. Duke përdorur fjalën kyçe Implements në Java, mund të implementoni ndërfaqe të shumta në një klasë të vetme.
Cili është ndryshimi midis klasës abstrakte dhe ndërfaqes?
Klasat abstrakte zakonisht përfaqësojnë një koncept abstrakt ose një entitet me zbatim të pjesshëm ose aspak. Nga ana tjetër, një ndërfaqe është një lloj abstrakt që përdoret për të specifikuar një kontratë që duhet të zbatohet nga klasa. Klasat abstrakte duhet të trashëgohen (ose zgjerohen), ndërsa ndërfaqet duhet të zbatohen. Klasat abstrakte mund të përmbajnë metoda abstrakte, ndërsa një ndërfaqe duhet të përmbajë vetëm metoda abstrakte. Klasat abstrakte mund të përmbajnë çdo ndryshore, por Ndërfaqet mund të përcaktojnë vetëm konstante. Një klasë nuk mund të trashëgojë nga më shumë se një klasë abstrakte, por mund të implementojë ndërfaqe të shumta. Një ndërfaqe nuk mund të implementojë një ndërfaqe tjetër. Megjithatë një ndërfaqe mund të zgjerojë një klasë.