Wat is het verschil tussen uitbreidingen en implementaties in Java

Wat Is Het Verschil Tussen Uitbreidingen En Implementaties In Java



Op Java is de “ strekt zich uit ' En ' implementeert ” trefwoorden zijn essentieel voor het effectief integreren van meerdere functionaliteiten. Bijvoorbeeld het overnemen van de reeds toegewezen functionaliteiten om ze bij te werken of de gegevens op de juiste manier uit te sorteren. In dergelijke gevallen zijn de sleutelwoorden 'uitbreidt' en 'implementeert' nuttig om het de ontwikkelaar gemakkelijk te maken en de bronnen efficiënt te beheren.

Deze blog belicht de verschillen tussen Java 'uitbreidt' en 'implementeert'.







Java 'breidt' zoekwoord uit

De java ' strekt zich uit ' sleutelwoord wordt gebruikt door een onderliggende klasse, d.w.z. ' afgeleid van ' om de bovenliggende klasse te erven, d.w.z. ' baseren ” door toegang te krijgen tot de functionaliteiten.



Syntaxis



klasse A, eerste klasse {
// lichaam
}
klasse B breidt A uit {
// lichaam
}





In deze syntaxis, ' B ” komt overeen met de onderliggende klasse die de bovenliggende klasse overerft “ A ' via de ' strekt zich uit ' sleutelwoord.

Voorbeeld 1: gebruik van het sleutelwoord 'extends' in Java



Dit voorbeeld maakt gebruik van de ' strekt zich uit ' trefwoord om de ouder te erven, d.w.z. ' baseren ' klas:

klasse Ouderklasse {
Tekenreeks x = 'Haar' ;
}
class childclass breidt Parentclass uit {
openbare tekenreeks concat ( ) {
opbrengst x.concat ( 'ry' ) ;
} }
openbare klasse breidt zich uit {
openbare statische leegte main ( Tekenreeksargumenten [ ] ) {
childclass-object = nieuwe childclass ( ) ;
Systeem.out.println ( object.concat ( ) ) ;
} }

Pas volgens het bovenstaande codefragment de volgende stappen toe:

  • Verklaar eerst een bovenliggende klasse met de naam ' Ouderklas ”.
  • Initialiseer in zijn definitie de vermelde variabele.
  • Erf nu een onderliggende klasse van de bovenliggende klasse via de ' strekt zich uit ' sleutelwoord.
  • Definieer in de definitie van de onderliggende klasse een functie met de naam ' concat() ”.
  • Roep in de functiedefinitie de variabele van de bovenliggende klasse aan en voeg de vermelde string toe via de bijbehorende ' concat() ” methode.
  • In de ' voornaamst() ” methode, maak een kindklasse-object met behulp van de nieuw ' trefwoord en de ' kinderklas() ” constructeur.
  • Roep ten slotte de kindklassefunctie aan ' concat() ” via het gemaakte object.

Uitgang

In deze uitvoer kan worden gevisualiseerd dat de functionaliteit van de bovenliggende klasse, d.w.z. ' variabele(x) ” wordt op de juiste manier overgenomen via het sleutelwoord 'extends' en dus wordt de string dienovereenkomstig samengevoegd.

Java 'implementeert' sleutelwoord

De ' implementeert ” sleutelwoord wordt toegepast om een ​​interface in de klas te implementeren vanuit hetzelfde of een extern bestand.

Syntaxis

openbare interface Interfacenaam {
leegte x ( ) ;
standaard leegte y ( ) {
// lichaam
}
}
klasse z implementeert InterfaceName {
// klasse lichaam
}

In deze syntaxis:

  • X ” verwijst naar een abstracte methode.
  • En ” geeft de standaardmethode aan.
  • klasse z ” komt overeen met de klasse die de “ InterfaceNaam ”-interface via de “ implementeert ' sleutelwoord.

Voorbeeld 2: gebruik van het sleutelwoord 'implementaties' in Java

In dit specifieke voorbeeld bestaat een interface uit ' abstract ' En ' standaard ” methoden kunnen in de klas worden geïmplementeerd.

Interfacecode

openbare interface leeftijd {
openbare lege naam ( ) ;
standaard ongeldige DOB ( ) {
Systeem.out.println ( 'Geboortedatum -> 28/8/1999' ) ;
} }

Neem in de bovenstaande interfacecode een abstracte methode op met de naam ' naam() ' en definieer de standaardmethode ' geboortedatum() ” het genoemde bericht afdrukken, respectievelijk.

Klassencode

Ga nu verder met de volgende regels code:

klasse steekproef implementeert leeftijd {
openbare lege naam ( ) {
Systeem.out.println ( 'Naam -> David' ) ;
} }
openbare klasseninterface2 {
openbare statische leegte main ( Tekenreeksargumenten [ ] ) {
monsterobject = nieuw monster ( ) ;
object.naam ( ) ;
object.DOB ( ) ;
} }

In dit codeblok:

  • Definieer een klasse met de naam ' steekproef ” implementatie van de interface “ leeftijd ' via de ' implementeert ' sleutelwoord.
  • Definieer in de (klasse) definitie de abstracte methode ' naam() ” gespecificeerd in de interface die de opgegeven naam weergeeft.
  • In de ' voornaamst() ”-methode, maak een klasseobject via de besproken aanpak.
  • Roep ten slotte respectievelijk de abstracte en standaardmethoden aan met behulp van het gemaakte object.

Uitgang

Deze uitkomst houdt in dat de standaardmethode wordt aangeroepen en dat de abstracte methode correct wordt toegepast op basis van de geïmplementeerde interface.

Kernverschillen tussen 'uitbreidt' en 'implementeert' in Java

Hieronder volgen enkele van de belangrijkste verschillen tussen de trefwoorden 'uitbreiden' en 'implementeren' in Java:

strekt zich uit implementeert
Dit sleutelwoord kan door een klasse worden gebruikt om zijn bovenliggende klasse te erven of door een interface om andere interfaces te erven. Een klasse kan de interface implementeren via het sleutelwoord 'implementeert'.
Slechts één ouderklas kan worden uitgebreid met een klas. Een klasse kan meerdere interfaces tegelijk implementeren/toepassen.
Het is niet verplicht voor een onderliggende klasse die een bovenliggende klasse uitbreidt om alle methoden in een bovenliggende klasse te overschrijven. Het is verplicht dat een klasse die een interface implementeert, ook alle interfacemethoden moet implementeren/toepassen.

Conclusie

De ' strekt zich uit ” sleutelwoord kan door een klasse of een interface worden gebruikt om de bovenliggende klasse of andere interfaces te erven, terwijl het “ implementeert Het sleutelwoord wordt door een klasse gebruikt om een ​​interface te implementeren. Deze blog demonstreerde aan de hand van praktijkvoorbeelden de verschillen tussen “uitbreiden” en “implementeren” in Java.