Rekommenderas, 2024

Redaktionen

Skillnad mellan klass och gränssnitt i Java

Klass och gränssnitt används båda för att skapa nya referenstyper. En klass är en samling fält och metoder som fungerar på fält. Ett gränssnitt har helt abstrakta metoder, dvs metoder med ingen. Ett gränssnitt är synaktiskt likartat klassen men det finns en stor skillnad mellan klass och gränssnitt som en klass kan ordnas, men ett gränssnitt kan aldrig ordnas. Så låt oss lära oss lite mer skillnad mellan en klass och ett gränssnitt med hjälp av ett jämförelseskartong som visas nedan.

Jämförelsediagram

Grunder för jämförelseKlassGränssnitt
GrundläggandeEn klass är instansierad för att skapa objekt.Ett gränssnitt kan aldrig bli instantierat eftersom metoderna inte kan utföra någon åtgärd att påkalla.
Nyckelordklassgränssnitt
Access specifierMedlemmarna i en klass kan vara privata, offentliga eller skyddade.Medlemmarna av ett gränssnitt är alltid offentliga.
metoderMetoderna för en klass definieras för att utföra en specifik åtgärd.Metoderna i ett gränssnitt är rent abstrakta.
Genomföra / ExtendEn klass kan implementera ett antal gränssnitt och kan förlänga endast en klass.Ett gränssnitt kan utöka flera gränssnitt men kan inte implementera något gränssnitt.
KonstruktörEn klass kan ha konstruktörer att initiera variablerna.Ett gränssnitt kan aldrig ha en konstruktör eftersom det knappast finns någon variabel att initiera.

Definition av klass

En klass är en viktig aspekt av Java-programmering utan klasser som du inte kan implementera ett java-program. En klass skapar referenttyper och dessa referenstyper används för att skapa objekt. En klass har en signatur och en kropp. Undertecknandet av en klass har klassens namn och information som berättar om klassen har ärvd en annan klass. Klassen i en klass har fält och metoder som fungerar på dessa områden. En klass skapas med hjälp av en nyckelordsklass. Låt oss se hur man deklarerar en klass.

 klass klassnamn {/ * fält ... metoder * /} 

När en klass är instanserad innehåller varje objekt som skapats en kopia av fält och metoder med dem. Fälten och medlemmarna som deklareras i en klass kan vara statiska eller icke-statiska. Värdet för statiska medlemmar är konstant för varje objekt medan de icke-statiska elementen initialiseras av varje objekt annorlunda i enlighet med dess krav.

Medlemmar i en klass har åtkomstspecifikatorer som bestämmer medlemmens synlighet och tillgänglighet till användaren eller till underklassen. Åtkomstspecifikatorerna är offentliga, privata och skyddade. En klass kan arvas av en annan klass med hjälp av åtkomstspecifikationen som bestämmer synligheten hos medlemmar i en superklass (arvsklass) i en underklass (arvsklass). Klassen uppfyller sålunda begreppet dataskydd och inkapsling i objektorienterad programmering.

Definition av gränssnitt

Ett gränssnitt är också bland de referenstyper som definieras i Java. Betydelsen av ett gränssnitt är att i Java kan en klass bara erva en enda klass. För att undvika denna begränsning införde Java-designerna ett gränssnittskoncept. Ett gränssnitt är synaktiskt lik en klass, men det saknas i fältdeklaration och metoderna i ett gränssnitt saknar någon implementering. Ett gränssnitt är deklarerat med hjälp av ett nyckelordgränssnitt. Låt oss se deklarationen av ett gränssnitt.

 gränssnitt gränssnitt_namn {typ var_namn = värde; skriv metod1 (parameterlista); skriv metod2 (parameterlista); . . } 

Ett gränssnitt definierar inte någon metod som deklareras inuti den eftersom den saknar fält för att fungera. Bara för att någon metod i ett gränssnitt inte utför någon åtgärd, kan ett gränssnitt aldrig bli instantierat. Om ett gränssnitt har någon fältmedlem, måste den initialiseras vid tidpunkten för deras deklaration. Ett gränssnitt innehåller aldrig några konstruktörer eftersom det saknas i fältmedlemmar att initiera. Så, ett gränssnitt definierar bara vad en klass måste göra istället för hur den ska göra.

Ett gränssnitt som en gång skapats kan implementeras av vilket antal klasser som helst med hjälp av ett sökordsverktyg. Men klasserna som implementerar ett gränssnitt måste definiera alla metoder inom ett gränssnitt. Ett gränssnitt kan också ärva ett annat gränssnitt med utöka sökord. Om en klass implementerar ett gränssnitt som utökar ett annat gränssnitt. Då måste en klass definiera metoderna för både gränssnitt som förekommer i en kedja. Metoderna inom ett gränssnitt måste alltid vara offentliga eftersom de måste nås av de klasser som genomför dem.

Viktiga skillnader mellan klass och gränssnitt i Java

  1. En klass kan instantieras genom att skapa dess objekt. Ett gränssnitt är aldrig instantiated eftersom metoderna som deklareras i ett gränssnitt är abstrakta och inte utför någon åtgärd, så det går inte att instansera något gränssnitt.
  2. En klass deklareras med hjälp av en nyckelordsklass. På samma sätt skapas ett gränssnitt med hjälp av ett sökordgränssnitt.
  3. Medlemmarna i en klass kan ha åtkomstspecifikationen som offentlig, privat, skyddad. Men medlemmarna i ett gränssnitt är alltid offentliga eftersom de måste nås av de klasser som genomför dem.
  4. Metoderna i en klass definieras för att utföra en åtgärd på de fält som deklarerats i klassen. Eftersom gränssnitt saknas i fältdeklarationen är metoderna i ett gränssnitt rent abstrakt.
  5. En klass kan implementera ett antal gränssnitt, men kan bara förlänga en superklass. Ett gränssnitt kan utöka ett antal gränssnitt men kan inte implementera något gränssnitt.
  6. En klass har konstruktörer definierad inuti den för att få variabelinitierad. Men ett gränssnitt har inga konstruktörer eftersom det inte finns några fält att initialiseras. Fälten för ett gränssnitt initieras endast vid tidpunkten för deras deklaration.

Slutsats:

Både klasser och gränssnitt har sin egen betydelse. En klass används när vi behöver definiera hur uppgiften ska göras. Ett gränssnitt används när vi behöver veta vilken uppgift som ska göras.

Top