Forskjellen mellom implementer og utvidelser

Anonim

Utførelser vs Utvider

Utførelser og utvidelser er to søkeord funnet i Java-programmeringsspråket som gir et middel til å overføre tilleggsfunksjonalitet til en ny klasse. Implements søkeord brukes eksplisitt for å implementere et grensesnitt, mens Extends søkeord brukes til å arve fra en (super) klasse. Vær oppmerksom på at begrepene arv og grensesnitt er tilstede i de fleste andre objektorienterte programmeringsspråk som C # og VB. NET, men de tilbyr forskjellig syntaks eller nøkkelord for å anvende disse konseptene. Denne artikkelen fokuserer bare på implementerer og utvider søkeord definert i Java.

Utvider

Utvid søkeord brukes til å implementere begrepet arv i Java programmeringsspråk. Arv gir i hovedsak kodeutnyttelse ved å tillate utvidelse av egenskaper og oppførsel av en eksisterende klasse med en nylig definert klasse. Når en ny underklasse (eller avledet klasse) utvider en superklasse (eller overordnet klasse), vil underklasseet arve alle attributter og metoder til superklassen. Underklassen kan eventuelt overstyre oppførselen (gi ny eller utvidet funksjonalitet til metoder) arvet fra foreldreklassen. En underklasse kan ikke utvide flere superklasser i Java. Derfor kan du ikke bruke strekker seg til flere arv. For å få flere arv må du bruke grensesnitt som forklart nedenfor.

Utførelser

Implementerer søkeord i Java programmeringsspråk brukes til å implementere et grensesnitt av en klasse. Et grensesnitt i Java er en abstrakt type som brukes til å spesifisere en kontrakt som skal implementeres av klasser, som implementerer det grensesnittet. Vanligvis vil et grensesnitt bare inneholde metodesignaturer og konstante deklarasjoner. Ethvert grensesnitt som implementerer et bestemt grensesnitt, bør implementere alle metodene som er definert i grensesnittet, eller skal deklareres som en abstrakt klasse. I Java kan typen av en objektreferanse defineres som en grensesnitttype. Men det objektet må enten være null eller burde holde et objekt av en klasse, som implementerer det aktuelle grensesnittet. Ved hjelp av verktøy for implementering i Java, kan du implementere flere grensesnitt til en enkelt klasse. Et grensesnitt kan ikke implementere et annet grensesnitt. Men et grensesnitt kan utvide en klasse.

Forskjellen mellom verktøy og forlenger

Selv om, implementerer og utvider er to søkeord som gir en mekanisme for å arve attributter og oppførsel til en klasse i Java-programmeringsspråket, brukes de til to forskjellige formål. Implements søkeord brukes til en klasse for å implementere et bestemt grensesnitt, mens Extends søkeord brukes til en underklasse som strekker seg fra en superklasse. Når en klasse implementerer et grensesnitt, må denne klassen implementere alle metodene som er definert i grensesnittet, men når en underklasse utvider en superklasse, kan det eller ikke overstyre metodene som inngår i foreldreklassen.Endelig er en annen viktig forskjell mellom implementer og utvidelser at en klasse kan implementere flere grensesnitt, men det kan bare strekke seg fra en superklasse i Java. Generelt betraktes bruken av implementer (grensesnitt) gunstig sammenlignet med bruken av Extends (arv), av flere grunner som høyere fleksibilitet og muligheten til å minimere kopling. Derfor er programmering i et grensesnitt i praksis foretrukket over å strekke seg fra basisklasser.