Forskellen Mellem Redskaber Og Udvidelser

Forskellen Mellem Redskaber Og Udvidelser
Forskellen Mellem Redskaber Og Udvidelser

Video: Forskellen Mellem Redskaber Og Udvidelser

Video: Forskellen Mellem Redskaber Og Udvidelser
Video: Psykologi og anerkendelse i børneopdragelse - Sådan bliver dit barn robust (Del 3) 2024, April
Anonim

Redskaber vs udvider

Implementer og udvidelser er to nøgleord, der findes i Java-programmeringssprog, der giver mulighed for at overføre ekstra funktionalitet til en ny klasse. Implements-nøgleord bruges eksplicit til implementering af en grænseflade, mens Extends-nøgleord bruges til at arve fra en (super) klasse. Bemærk, at begreberne arv og grænseflader findes i de fleste andre objektorienterede programmeringssprog som C # og VB. NET, men de tilbyder forskellige syntaks eller nøgleord til anvendelse af disse begreber. Denne artikel fokuserer kun på implementeringer og udvider nøgleord defineret i Java.

Udvider sig

Udvidet nøgleord bruges til at implementere begrebet arv i Java-programmeringssprog. Arv tilvejebringer i det væsentlige genbrug af kode ved at tillade udvidelse af egenskaber og adfærd for en eksisterende klasse med en nyligt defineret klasse. Når en ny underklasse (eller afledt klasse) udvider en superklasse (eller overordnet klasse), arver den underklasse alle attributter og metoder i superklassen. Underklassen kan eventuelt tilsidesætte den adfærd (tilvejebringe ny eller udvidet funktionalitet til metoder), der er nedarvet fra den overordnede klasse. En underklasse kan ikke udvide flere superklasser i Java. Derfor kan du ikke bruge udvidelser til flere arv. For at have flere arv skal du bruge grænseflader som forklaret nedenfor.

Redskaber

Implementerer 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 grænsefladen. Normalt vil en grænseflade kun indeholde metodesignaturer og konstante erklæringer. Enhver grænseflade, der implementerer en bestemt grænseflade, skal implementere alle metoder, der er defineret i grænsefladen, eller deklareres som en abstrakt klasse. I Java kan typen af en objektreference defineres som en interfacetype. Men det objekt skal enten være nul eller skal indeholde et objekt i en klasse, som implementerer den pågældende grænseflade. Ved hjælp af 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. Imidlertid kan en grænseflade udvide en klasse.

Forskel mellem redskaber og udvidelser

Selvom Implements og Extends 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-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 superklasse. 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 muligvis tilsidesætte de metoder, der er inkluderet i den overordnede klasse. Endelig er en anden vigtig forskel mellem implementer og udvidelser, at en klasse kan implementere flere grænseflader, men den kan kun strække sig fra en superklasse i Java. Generelt betragtes brugen af redskaber (grænseflader) som mere gunstig sammenlignet med brugen af Extends (arv),af flere grunde som højere fleksibilitet og evnen til at minimere kobling. Derfor foretrækkes det i praksis programmering til en grænseflade frem for at strække sig fra baseklasser.

Anbefalet: