Enkleste forklaring av Abstrakt klasse og Grensesnitt

Dette er kanskje det mest stilte spørsmålet i noen intervjuer knyttet til utvikling av Programvare eller programvare kvalitetssikring. Jeg har sett fra min erfaring at det ofte mange av oss til å bli forvirret eller glemmer definisjon og bruk av abstrakte klasser og grensesnitt. Så, jeg ønsker å gjøre det enklest slik at man ikke har noen problemer med det noensinne igjen.

Abstrakt klasse og grensesnitt er to svært viktige dreier i Objekt-Orientert Programmering konseptet.,

først vil jeg forklare Abstrakt klasse, og det er bruk, og senere vil vi gå inn Grensesnitt.

Abstrakt klasse er ikke noe spesielt å se på når du ønsker å differensiere med en vanlig klasse. Men det har noen metoder som er unimplemented, eller bare erklært, ikke definert. I så fall, alle disse metodene og klasse i seg selv er et nytt navn med «abstract» søkeord.

En abstrakt klasse kan ha én eller flere av unimplemented metoder.,

Som en abstrakt klasse er ikke riktig, eller ikke har ideell definerte metoder i forhold til en vanlig klasse, så abstrakte klasser ikke kan være lagt, det betyr at vi ikke kan opprette noen direkte objekter av abstrakte klasser.

De klasser som Arver/Utvide dette abstrakt klasse, har til å implementere/definere alle abstrakte metoder for morselskapet abstrakt klasse.

Hvis en klasse ikke klarer å definere noen av de abstrakte metoder, som klasse også blir en abstrakt klasse.,

– Bruk (En tenkt case study):

La oss anta, i 1995, har du laget en bil klasse som hadde en ekstra funksjon-det kan fly. Du designet bilklassen veldig fint, alle metodene var svært vanlig og effektiv, men tilbake da, du visste at det var ganske umulig å gjennomføre carFlying () – metoden. Så, du bare holdt carFlying () – metoden blanke, eller unimplemented (Nå vet du at det er en abstrakt metode, samt klasse!).,

i Dag, jeg ønsker å implementere det flygende bil som du allerede har laget, og teknologien er ikke lenger umulig. Bilen jeg skal bygge har alle de funksjoner som ligner på din bil, og i tillegg det kan fly. Så, hva kan jeg gjøre, er at jeg kan bare arve («strekker seg»-for Java) din abstrakt klasse, og må definere/implementere som carFlying() abstrakt metode. her går! vår flygende bilen er klar til å rulle.

Så, når vi har noen felles kjennetegn eller adferd blant ulike objekter, kan vi lage en generell og abstrakt klasse med at funksjonen som en metode gjennomført., Men de som objektet kan ha forskjellige atferd, og i så tilfelle, vil vi erklære en abstrakt metode og implementere de abstrakte metodene som er forskjellig i henhold til legemets behov.

Eksempel på en Abstrakt Klasse:

igjen, la oss ta et eksempel, en haug av brytere få det samme beløpet per time for å spille. men de har forskjellige tema musikk og etterbehandling kjempe strategi. Så, vi kan holde betalingsmåte samme for alle, og har det implementert i en klasse som heter Bryter., kan erklære themeMusic() og etterbehandler () – metodene som abstrakte fordi disse to må være implementert forskjellig for forskjellige objekter i noen andre klasser som arver våre Bryter Abstrakt klasse.

og den viktigste.java:

– Grensesnitt:

Hvis du har gått gjennom den øvre delen av denne opplæringen på riktig måte, forstå grensesnitt kommer til å bli meget enklere for deg.

Grensesnittet er ikke en klasse, er det bare grensesnittet. Den har fått noen metoder med ingen kropp inne i det, bare metoden signatur (de er i utgangspunktet abstrakte metoder!,), og kan ha noen endelig og statiske variabler. Og, en typisk klasse «implementerer» grensesnitt, ikke «strekker seg».

Flere grensesnitt som kan implementeres (generelt, arvet) på en gang.

De klasser som Arver/implementerer grensesnitt, må definere alle abstrakte metoder av grensesnittet.

Metoder inne grensesnitt er standard offentlige, void og abstrakt.

grensesnittet er slags flere arv i Java programmeringsspråk.

Vi kan ikke instantiate grensesnitt for akkurat som abstrakte klasser., Fordi de er ufullstendige enhet, og burde ikke være lov til å bli realisert. Men noen ganger en aktivitet som å starte kan være aktuelt for det med hjelp av anonym indre klasse. Det er ikke vår agenda her i dag.

– Bruk av Grensesnitt:

Grensesnitt lagre koding tid. Det kan inneholde noen statisk og siste variabler som kan nås globalt. og noen metoder som er abstrakt og lett tilgjengelig for videre bruk når som helst til hvem som implementerer grensesnittet.,

Eksempel på Brukergrensesnitt:

I eksempelet ovenfor med Abstrakt klasse, så vi at den ene metoden var den samme for alle som hadde en kropp inne i en Abstrakt klasse og andre metoder var abstrakt. men for Grensesnitt, alle metodene som er nå er det bare å signatur. Klassen StoneCold implementerer Bryter grensesnitt og definere alle tre abstrakte metoder det i henhold til sine behov.

Denne gangen, forskjellige brytere få forskjellige sum penger per time. Så, er det mest praktisk å sette samme metode som abstrakte og definere det andre steder i henhold til legemets behov.,

public interface Wrestler {
public abstract void paymentForWork (int hours);
public abstract void themeMusic();
public abstract void finisher();
}

og den følgende klasse som implementerer Bryter grensesnitt.

For de viktigste.java:

For objektet starter i tilfelle av en Abstrakt klasse eller grensesnitt, kan du ha følgende i tankene,

A obj= new B();
//where A is an interface/abstract class. B is the concrete(implements/extends "A”)class which gives it’s memory to A’s obj to have access into B class and utilize its defined methods.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *