Abstrakt klasse Vs. Grensesnittet i Java

Ifølge Tiobe indeksen, er Java No. 1 rangering programmeringsspråk i verden på det tidspunktet denne artikkelen publikasjon. Det er mye brukt, kraftig og ganske lett å lære. Den har et stort økosystem drevet av et enormt antall utviklere og et stort utvalg av tilgjengelige verktøy. Java er objektorientert og gir mange objektorienterte verktøy for annen slags problemer. Abstrakte klasser og grensesnitt er to viktige verktøy i Java verktøykasse.

Objektorientert programmering

Objektorientert programmering er den dominerende programmering paradigme. I stedet for å vise programmering som å opprette en liste med instruksjoner for datamaskiner å utføre, OOP programmerere lage medlemmer --- disse kalles "gjenstander" --- av et digitalt samfunn som de deretter orkestrere å gjøre hva de vil. Dette oppnås ved å sende meldinger til objekter. Objektene deretter svare på disse meldingene. Programmerere bruke disse objektene og deres svar å lage programvare.

klasser

Klassene er en viktig del av objektorientert programmering. OOP programmerere definere objektene de bruker ved å opprette klasser og definere hvordan de klasser av objektet oppfører seg. Klassene er en spesiell type objekt hvis jobb det er på å bruke objekter med definerte atferd. Klassene kan også arve fra andre klasser, eller kopiere deres atferd.

Grensesnitt

Grensesnitt er en spesiell form for klasse. Grensesnitt fungere som en mal for andre klasser. De erklærer atferd som arver klasser må definere. De har imidlertid ikke iverksette atferd. Det eneste formålet med et grensesnitt er å definere hva atferd en arve klassen må fremvise. Grensesnitt er nyttige for å håndheve et enhetlig grensesnitt for lignende objekter. Grensesnitt kan bare arvet fra; de kan ikke brukes til å lage objekter.

abstrakte klasser

Abstrakte klasser er lik grensesnitt, men abstrakte klasser kan også implementere oppførselen til subklasser. Abstrakte klasser kan brukes som grensesnitt i situasjoner der underklasser har felles atferd. Abstrakte klasser er nyttige i programvare som applikasjonsrammeverk, hvor utviklere trenger noen standard funksjonalitet fra subklassene de definerer. Abstrakte klasser kan bare arvet fra. De kan ikke brukes til å lage objekter.