Verschil tussen werktuigen en verlengstukken

Verschil tussen werktuigen en verlengstukken
Verschil tussen werktuigen en verlengstukken

Video: Verschil tussen werktuigen en verlengstukken

Video: Verschil tussen werktuigen en verlengstukken
Video: Combinatoriek - het verschil tussen permutaties en combinaties bij telproblemen 2024, December
Anonim

Implementeert versus breidt uit

Implements en Extends zijn twee sleutelwoorden in de Java-programmeertaal die een manier bieden om toegevoegde functionaliteit over te brengen naar een nieuwe klasse. Het sleutelwoord Implements wordt expliciet gebruikt voor het implementeren van een interface, terwijl het sleutelwoord Extends wordt gebruikt voor het erven van een (super)klasse. Houd er rekening mee dat de concepten van overerving en interfaces aanwezig zijn in de meeste andere objectgeoriënteerde programmeertalen zoals C en VB. NET, maar ze bieden verschillende syntaxis of trefwoorden voor het toepassen van die concepten. Dit artikel richt zich alleen op de trefwoorden Implements and Extends die in Java zijn gedefinieerd.

Verlengt

Extends trefwoord wordt gebruikt om het concept van overerving in de programmeertaal Java te implementeren. Overerving biedt in wezen codehergebruik door eigenschappen en gedrag van een bestaande klasse uit te breiden met een nieuw gedefinieerde klasse. Wanneer een nieuwe subklasse (of afgeleide klasse) een superklasse (of ouderklasse) uitbreidt, zal die subklasse alle attributen en methoden van de superklasse erven. De subklasse kan optioneel het gedrag overschrijven (nieuwe of uitgebreide functionaliteit bieden aan methoden) dat is geërfd van de bovenliggende klasse. Een subklasse kan niet meerdere superklassen in Java uitbreiden. Daarom kunt u extends niet gebruiken voor meervoudige overerving. Om meervoudige overerving te hebben, moet u interfaces gebruiken zoals hieronder uitgelegd.

Werktuigen

Implements-sleutelwoord in Java-programmeertaal wordt gebruikt voor het implementeren van een interface door een klasse. Een interface in Java is een abstract type dat wordt gebruikt om een contract te specificeren dat moet worden geïmplementeerd door klassen die die interface implementeren. Gewoonlijk bevat een interface alleen methodehandtekeningen en constante declaraties. Elke interface die een bepaalde interface implementeert, moet alle methoden implementeren die in de interface zijn gedefinieerd, of moet worden gedeclareerd als een abstracte klasse. In Java kan het type objectreferentie worden gedefinieerd als een interfacetype. Maar dat object moet ofwel nul zijn of een object van een klasse bevatten, die die specifieke interface implementeert. Met het sleutelwoord Implements in Java kunt u meerdere interfaces in één klasse implementeren. Een interface kan geen andere interface implementeren. Een interface kan echter een klasse uitbreiden.

Verschil tussen werktuigen en verlengstukken

Hoewel Implements en Extends twee sleutelwoorden zijn die een mechanisme bieden om attributen en gedrag over te nemen aan een klasse in Java-programmeertaal, worden ze voor twee verschillende doeleinden gebruikt. Het sleutelwoord Implements wordt gebruikt voor een klasse om een bepaalde interface te implementeren, terwijl het sleutelwoord Extends wordt gebruikt voor een subklasse om uit te breiden van een superklasse. Wanneer een klasse een interface implementeert, moet die klasse alle methoden implementeren die in de interface zijn gedefinieerd, maar wanneer een subklasse een superklasse uitbreidt, kan deze de methoden in de bovenliggende klasse al dan niet overschrijven. Ten slotte is een ander belangrijk verschil tussen Implements en Extends dat een klasse meerdere interfaces kan implementeren, maar dat deze zich alleen kan uitbreiden vanuit één superklasse in Java. Over het algemeen wordt het gebruik van Implements (interfaces) als gunstiger beschouwd in vergelijking met het gebruik van Extends (overerving), om verschillende redenen, zoals hogere flexibiliteit en de mogelijkheid om koppeling te minimaliseren. Daarom heeft in de praktijk programmeren naar een interface de voorkeur boven uitbreiding van basisklassen.

Aanbevolen: