Redskap mot förlängningar
Implement och Extends är två nyckelord som finns i Java-programmeringsspråk som ger ett sätt att överföra tillagd funktionalitet till en ny klass. Implements-sökord används uttryckligen för att implementera ett gränssnitt, medan Extends-sökord används för att ärva från en (super) klass. Observera att begreppet arv och gränssnitt finns i de flesta andra objektorienterade programmeringsspråk som C # och VB. NET, men de erbjuder olika syntax eller nyckelord för att tillämpa dessa begrepp. Den här artikeln fokuserar bara på Implements och Extends-nyckelord som definierats i Java.
Förlänger
Extends nyckelord används för att implementera begreppet arv i Java-programmeringsspråk. Arv ger i huvudsak återanvändning av kod genom att tillåta utökande egenskaper och beteende hos en befintlig klass med en nyligen definierad klass. När en ny underklass (eller härledd klass) utökar en superklass (eller överordnad klass) kommer den underklassen att ärva alla attribut och metoder för superklassen. Underklassen kan eventuellt åsidosätta beteendet (ge ny eller utökad funktionalitet till metoder) som ärvs från den överordnade klassen. En underklass kan inte förlänga flera superklasser i Java. Därför kan du inte använda extends för flera arv. För att få flera arv måste du använda gränssnitt enligt nedan.
Redskap
Implementerar nyckelord i Java-programmeringsspråk används för att implementera ett gränssnitt av en klass. Ett gränssnitt i Java är en abstrakt typ som används för att specificera ett kontrakt som ska implementeras av klasser, som implementerar det gränssnittet. Vanligtvis innehåller ett gränssnitt endast metodesignaturer och konstanta deklarationer. Alla gränssnitt som implementerar ett visst gränssnitt bör implementera alla metoder som definieras i gränssnittet, eller deklareras som en abstrakt klass. I Java kan typen av en objektreferens definieras som en gränssnitttyp. Men det objektet måste antingen vara null eller bör innehålla ett objekt i en klass som implementerar just det gränssnittet. Med Implements-nyckelordet i Java kan du implementera flera gränssnitt i en enda klass. Ett gränssnitt kan inte implementera ett annat gränssnitt. Men ett gränssnitt kan utöka en klass.
Skillnad mellan redskap och förlängningar
Även om Implements och Extends är två nyckelord som ger en mekanism för att ärva attribut och beteende till en klass i Java-programmeringsspråk, används de för två olika ändamål. Implements-sökord används för en klass för att implementera ett visst gränssnitt, medan Extends-nyckelord används för en underklass för att sträcka sig från en superklass. När en klass implementerar ett gränssnitt, måste den klassen implementera alla metoder som definierats i gränssnittet, men när en underklass utökar en superklass kan den eventuellt åsidosätta metoderna som ingår i moderklassen. Slutligen är en annan viktig skillnad mellan Implement och Extends att en klass kan implementera flera gränssnitt men den kan bara sträcka sig från en superklass i Java. I allmänhet anses användningen av redskap (gränssnitt) vara mer gynnsam jämfört med användningen av Extends (arv),av flera skäl som högre flexibilitet och förmågan att minimera kopplingen. Därför föredras i praktiken programmering till ett gränssnitt framför att sträcka sig från basklasser.