Verschil Tussen Overerving En Interface In Java

Inhoudsopgave:

Verschil Tussen Overerving En Interface In Java
Verschil Tussen Overerving En Interface In Java

Video: Verschil Tussen Overerving En Interface In Java

Video: Verschil Tussen Overerving En Interface In Java
Video: Interface in Java with Example, Multiple Inheritance in Java using Interface 2024, Mei
Anonim

Belangrijkste verschil - Overerving versus interface in Java

Java is een programmeertaal die is ontwikkeld door Sun Microsystems. Java kan worden gebruikt om verschillende applicaties te ontwikkelen. Het is een taal met meerdere paradigma's die objectgeoriënteerd, gestructureerd etc. ondersteunt. Het belangrijkste voordeel van Java is dat het objectgeoriënteerd programmeren (OOP) ondersteunt. De programmeur kan klassen en objecten maken. Er zijn vier pijlers in OOP. Ze zijn overerving, polymorfisme, abstractie en inkapseling. Overerving en interfaces zijn gerelateerd aan OOP. Het belangrijkste verschil tussen overerving en interface is dat overerving is om nieuwe klassen af te leiden uit bestaande klassen en een interface is om abstracte klassen en meervoudige overerving te implementeren.

INHOUD

1. Overzicht en belangrijkste verschil

2. Wat is overerving in Java

3. Wat is interface in Java

4. Overeenkomsten tussen overerving en interface in Java

5. Vergelijking zij aan zij - Overerving versus interface in Java in tabelvorm

6. Samenvatting

Wat is overerving in Java?

Door overerving kan de code opnieuw worden gebruikt. Overerving helpt om de attributen en methoden van een bestaande klasse opnieuw te gebruiken. Het mechanisme van het afleiden van een nieuwe klasse met behulp van de oude klasse wordt overerving genoemd. De oude klasse staat bekend als bovenliggende klasse of superklasse. De afgeleide klasse wordt de onderliggende klasse of subklasse genoemd.

De syntaxis van Java-overerving is als volgt.

class subclass_name breidt superklasse_name {uit

variabele aangifte;

methode verklaring;

}

Overervingsconcept kan worden uitgelegd aan de hand van het volgende voorbeeld. Stel dat er een klasse is met de naam A als volgt.

openbare klasse A {

openbare ongeldige som () {

System.out.println ("Som");

}

}

Als we een nieuwe methode willen toevoegen zonder de bestaande klasse te wijzigen, kunnen we dit als volgt doen.

openbare klasse B {

openbare leegte sub () {

System.out.println ("Sub");

}

}

Programmeur kan overerving gebruiken om klasse A sum () te gebruiken.

openbare klasse B breidt klasse A uit {

openbare leegte sub () {

System.out.println ("Sub");

}

}

In de hoofdfunctie is het mogelijk om een object van B te maken en sub () aan te roepen, die tot klasse B behoort, en sum (), die tot klasse A behoort met behulp van overerving.

public static void main (String args) {

B obj = nieuwe B ();

obj.sub ();

obj.sum ();

}

Er zijn verschillende soorten overerving. Het zijn enkele overerving, meervoudige overerving, overerving op meerdere niveaus en hiërarchische overerving. Bij eenmalige overerving is er één basisklasse en één afgeleide klasse. Bij overerving op meerdere niveaus zijn er drie klassen, namelijk basisklasse, tussenklasse en afgeleide klasse. De tussenliggende klasse erft van de basisklasse en de afgeleide klasse erft van de tussenliggende klasse. Bij hiërarchische overerving is er één basisklasse en veel afgeleide klassen. Er is een speciaal type dat bekend staat als hybride overerving. Het is een combinatie van twee of meer soorten overerving.

Verschil tussen overerving en interface in Java
Verschil tussen overerving en interface in Java

Figuur 01: Overerving

Bij meervoudige overerving zijn er veel basisklassen en één afgeleide klasse. Stel dat klasse A en B de basisklassen zijn. Klasse C is de afgeleide klasse. Als zowel A- als B-klassen dezelfde methode hebben en de programmeur die methode aanroept vanuit de afgeleide klasse, zal dit een dubbelzinnigheidsprobleem veroorzaken. Het overnemen van twee klassen kan een compilatiefout veroorzaken. Daarom wordt meervoudige overerving niet ondersteund in Java. Een interface kan worden gebruikt om dat probleem op te lossen.

Wat is interface in Java?

Abstractie is een proces waarbij de implementatiedetails worden verborgen en alleen de functionaliteiten aan de gebruiker worden getoond. Abstractie kan worden bereikt met behulp van abstracte klassen of interfaces. Een abstracte methode is een methode zonder implementatie. Een klasse met ten minste één abstracte methode is een abstracte klasse. Voorbeeld van een abstracte klasse is als volgt.

abstracte klasse A {

abstracte leegte som ();

}

Stel dat er twee abstracte klassen zijn als A en B. Om abstracte methoden van A en B te implementeren, wordt een nieuwe klasse C gemaakt. Dan zou klasse C zowel A als B moeten uitbreiden, maar meervoudige overerving wordt niet ondersteund in Java. Daarom moeten interfaces worden gebruikt. Interfaces kunnen worden gebruikt om methoden te declareren, maar het is niet mogelijk methoden te definiëren. Het is niet mogelijk om een object te maken met behulp van interfaces. Klasse C zou alle methoden in interface A en B moeten implementeren.

interface A {

ongeldige som ();

}

interface B {

leegte sub ();

}

klasse C implementeert A, B {

openbare ongeldige som () {

System.out.println ("Sommatie");

}

openbare leegte sub () {

System.out.println ("Aftrekken");

}

}

Nu is het in het hoofdprogramma mogelijk om een object van C te maken en beide methoden aan te roepen.

public static void main (String args) {

C obj = nieuwe C ();

obj.sum ();

obj.sub ();

}

Interfaces kunnen dus worden gebruikt om meerdere overerving te implementeren.

Een ander gebruik van interfaces is dat het beveiliging biedt. Raadpleeg de onderstaande code.

interface A {

ongeldige som ();

}

klasse B implementeert A {

openbare ongeldige som () {

System.out.println ("Sommatie");

}

openbare leegte vermenigvuldigen () {

System.out.println ("Vermenigvuldiging");

}

}

Bij het maken van een object van B is het mogelijk om beide methoden sum () en multiply () aan te roepen. Als de programmeur het gebruik van de multiply () -functie wil beperken, is dat als volgt mogelijk.

public static void main (String args) {

A obj = nieuwe B ();

obj.sum ();

}

A obj = nieuwe B (); zal een object creëren. Het is van het type A en het geheugen is toegewezen als B. Het is mogelijk om sum () aan te roepen, maar kan geen multiply () uitvoeren. Deze beperking wordt gedaan met behulp van interfaces.

Wat zijn de overeenkomsten tussen overerving en interface in Java?

  • Beide concepten hebben betrekking op Object-Oriented Programming
  • Beide vertegenwoordigen de IS-A-relatie.

Wat is het verschil tussen overerving en interface in Java?

Diff Artikel Midden voor Tafel

Overerving versus interface in Java

Overerving is een OOP-concept om nieuwe klassen af te leiden uit de bestaande klassen. Interface is een mechanisme in OOP om abstractie en meervoudige overerving te implementeren.
Gebruik
Overerving biedt herbruikbaarheid van code. Interfaces zorgen voor abstractie en meervoudige overerving.

Samenvatting - Overerving versus interface in Java

Java is een programmeertaal met meerdere paradigma's die objectgeoriënteerd programmeren ondersteunt. Overerving en interfaces hebben betrekking op objectgeoriënteerd programmeren. Het verschil tussen overerving en interface is dat overerving is om nieuwe klassen af te leiden uit bestaande klassen en interfaces om abstracte klassen en meervoudige overerving te implementeren.

Download de pdf-versie van overerving versus interface in Java

U kunt de PDF-versie van dit artikel downloaden en voor offline doeleinden gebruiken volgens de citatienota. Download hier de pdf-versie. Verschil tussen overerving en interface in Java

Aanbevolen: