Forskel mellem implementeringer og forlænger

Anonim

Udførelser vs Udvider

Udførelser og forlænger er to nøgleord fundet i Java-programmeringssprog, der giver mulighed for at overføre tilføjet funktionalitet til en ny klasse. Implements søgeord bruges eksplicit til implementering af en grænseflade, mens Extends søgeord bruges til at arve fra en (super) klasse. Vær opmærksom på, at begreberne arv og grænseflader er til stede i de fleste andre objektorienterede programmeringssprog som C # og VB. NET, men de tilbyder forskellige syntakser eller søgeord til at anvende disse begreber. Denne artikel fokuserer kun på implementerer og udvider søgeord defineret i Java.

Udvider

Udvidet søgeord bruges til at implementere begrebet arv i Java-programmeringssprog. Arv giver i det væsentlige kodegenbrug ved at tillade udvidelse af egenskaber og opførsel af en eksisterende klasse af en nyligt defineret klasse. Når en ny underklasse (eller afledt klasse) udvider en superklasse (eller forældersklasse), vil underklasseet arve alle attributter og metoder til superklassen. Underklassen kan eventuelt tilsidesætte adfærden (give ny eller udvidet funktionalitet til metoder) arvet fra forældrenes klasse. En underklasse kan ikke udvide flere superklasser i Java. Derfor kan du ikke bruge omfatter flere arv. For at få flere arv, skal du bruge grænseflader som forklaret nedenfor.

Redskaber

Implementerer søgeord i Java programmeringssprog bruges til at implementere en grænseflade af en klasse. En grænseflade i Java er en abstrakt type, der bruges til at specificere en kontrakt, der skal implementeres af klasser, som implementerer den grænseflade. Normalt vil en grænseflade kun indeholde metodesignaturer og konstante erklæringer. Enhver grænseflade, der implementerer en bestemt grænseflade, skal implementere alle de metoder, der er defineret i grænsefladen, eller skal angives som en abstrakt klasse. I Java kan typen af ​​en objektreference defineres som en grænsefladetype. Men det objekt skal enten være null eller skulle holde et objekt af en klasse, som implementerer den pågældende grænseflade. Ved hjælp af Implements søgeord i Java kan du implementere flere grænseflader til en enkelt klasse. Et grænseflade kan ikke implementere en anden grænseflade. Men en grænseflade kan forlænge en klasse.

Forskel mellem redskaber og forlænger

Selvom implementeringer og udvidelser er to nøgleord, der giver en mekanisme til at arve attributter og adfærd til en klasse i Java-programmeringssprog, bruges de til to forskellige formål. Implements søgeord bruges til en klasse til at implementere en bestemt grænseflade, mens Extends søgeord bruges til en underklasse, der strækker sig fra en superklasse. Når en klasse implementerer en grænseflade, skal denne klasse implementere alle de metoder, der er defineret i grænsefladen, men når en underklasse udvider en superklasse, kan det eller ikke overstyre metoderne i forældrenes klasse.Endelig er en anden vigtig forskel mellem Implementer og Udvidelser, at en klasse kan implementere flere grænseflader, men det kan kun strække sig fra en superklasse i Java. Generelt betragtes brug af implementer (grænseflader) mere gunstigt i forhold til brugen af ​​Extends (arv) af flere grunde som højere fleksibilitet og evnen til at minimere kobling. Derfor er programmering til en grænseflade i praksis foretrukket over at strække sig fra basisklasser.