Implementer vs Extends
Implementer og Extends er to nøgleord, der findes i programmeringssproget Java, som giver mulighed for at overføre ekstra funktionalitet til en ny klasse. Implements nøgleord bruges eksplicit til at implementere en grænseflade, mens Extends nøgleord bruges til at arve fra en (super) klasse. Bemærk venligst, at begreberne arv og grænseflader er til stede i de fleste af de andre objektorienterede programmeringssprog som C og VB. NET, men de tilbyder forskellige syntaks eller nøgleord til at anvende disse begreber. Denne artikel fokuserer kun på implementerer og udvider søgeord defineret i Java.
Udvider
Extends søgeord bruges til at implementere begrebet arv i programmeringssproget Java. Nedarvning giver i det væsentlige kodegenbrug ved at tillade udvidelse af egenskaber og adfærd for en eksisterende klasse med en nydefineret klasse. Når en ny underklasse (eller afledt klasse) udvider en superklasse (eller overordnet klasse), vil denne underklasse arve alle superklassens attributter og metoder. Underklassen kan valgfrit tilsidesætte adfærden (give ny eller udvidet funktionalitet til metoder), der er arvet fra den overordnede klasse. En underklasse kan ikke udvide flere superklasser i Java. Derfor kan du ikke bruge forlænger til multipel arv. For at have multipel arv skal du bruge grænseflader som forklaret nedenfor.
Implements
Implements nøgleord 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 denne grænseflade. Norm alt vil en grænseflade kun indeholde metodesignaturer og konstante erklæringer. Enhver grænseflade, der implementerer en bestemt grænseflade, bør implementere alle metoder, der er defineret i grænsefladen, eller bør erklæres 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 skal indeholde et objekt af en klasse, som implementerer den pågældende grænseflade. Ved at bruge Implements nøgleord i Java kan du implementere flere grænseflader til en enkelt klasse. En grænseflade kan ikke implementere en anden grænseflade. En grænseflade kan dog udvide en klasse.
Forskel mellem Implementer og Extends
Selvom Implementer og Extends er to nøgleord, der giver en mekanisme til at arve attributter og adfærd til en klasse i programmeringssproget Java, bruges de til to forskellige formål. Implements nøgleord bruges til en klasse til at implementere en bestemt grænseflade, mens Extends nøgleord bruges til en underklasse til at strække sig fra en super klasse. Når en klasse implementerer en grænseflade, skal den klasse implementere alle de metoder, der er defineret i grænsefladen, men når en underklasse udvider en superklasse, kan den måske tilsidesætte metoderne inkluderet i den overordnede klasse. Endelig er en anden vigtig forskel mellem Implements og Extends, at en klasse kan implementere flere grænseflader, men den kan kun strække sig fra en superklasse i Java. Generelt anses brugen af redskaber (grænseflader) for at være mere gunstig sammenlignet med brugen af Extends (arv), af flere årsager som højere fleksibilitet og evnen til at minimere kobling. Derfor foretrækkes i praksis programmering til en grænseflade frem for at udvide fra basisklasser.