Implements vs Extends
Implements och Extends är två nyckelord som finns i programmeringsspråket Java som ger ett sätt att överföra extra funktionalitet till en ny klass. Implements nyckelord används explicit för att implementera ett gränssnitt, medan Extends nyckelord används för att ärva från en (super)klass. Observera att begreppen 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å implementerar och utökar nyckelord definierade i Java.
Förlänger
Extends nyckelord används för att implementera begreppet arv i programmeringsspråket Java. Arv ger i huvudsak kodåteranvändning genom att tillåta utvidgning av egenskaper och beteende hos en befintlig klass med en nydefinierad klass. När en ny underklass (eller härledd klass) utökar en superklass (eller överordnad klass) kommer den underklassen att ärva superklassens alla attribut och metoder. Underklassen kan valfritt åsidosätta beteendet (tillhandahålla ny eller utökad funktionalitet till metoder) som ärvts från den överordnade klassen. En underklass kan inte utöka flera superklasser i Java. Därför kan du inte använda förlängningar för multipelt arv. För att få flera arv måste du använda gränssnitt enligt beskrivningen nedan.
Implements
Implements 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 kommer ett gränssnitt bara att innehålla metodsignaturer och konstantdeklarationer. Alla gränssnitt som implementerar ett visst gränssnitt bör implementera alla metoder som definieras i gränssnittet, eller bör deklareras som en abstrakt klass. I Java kan typen av en objektreferens definieras som en gränssnittstyp. Men det objektet måste antingen vara null eller bör innehålla ett objekt av en klass, som implementerar det specifika gränssnittet. Med hjälp av nyckelordet Implements i Java kan du implementera flera gränssnitt till en enda klass. Ett gränssnitt kan inte implementera ett annat gränssnitt. Ett gränssnitt kan dock utöka en klass.
Skillnaden mellan Implementer och Extends
Även om Implementer och Extends är två nyckelord som tillhandahåller en mekanism för att ärva attribut och beteende till en klass i programmeringsspråket Java, används de för två olika syften. Implements nyckelord används för en klass för att implementera ett visst gränssnitt, medan Extends nyckelord används för att en underklass ska sträcka sig från en superklass. När en klass implementerar ett gränssnitt måste den klassen implementera alla metoder som definieras i gränssnittet, men när en underklass utökar en superklass kan den eventuellt åsidosätta metoderna som ingår i den överordnade klassen. Slutligen, en annan viktig skillnad mellan Implements och Extends är att en klass kan implementera flera gränssnitt men den kan bara sträcka sig från en superklass i Java. Generellt sett anses användningen av redskap (gränssnitt) vara mer fördelaktig jämfört med användningen av Extends (arv), av flera skäl som högre flexibilitet och möjligheten att minimera kopplingen. Därför är i praktiken programmering till ett gränssnitt att föredra framför att sträcka sig från basklasser.