Wat Is meervoudige overerving in Java?

Ontwikkelaars ontworpen Java uit de grond omhoog om op te treden als een volledig object-georiënteerde programmeertaal. Vanwege dit, concepten integraal deel uitmaakt van object-georiënteerd programmeren vrij belangrijk in Java basisfunctionaliteit geworden. Bijzonder, zijn concepten van klassenovererving (en de problemen die zich formulier klassenovererving voordoen) fundamentele zorgen voor de Java-programmeur. Een van deze problemen, meervoudige overerving, kan worden omzeild met een begrip van hoe overname werkt, en het gebruik van Java-interfaces.

OOP en overerving

  • Object Oriented Programming gebruikt het concept van overerving om uit te breiden de functionaliteit van objecten. Overwegen wanneer een programmeur maakt een object; ze kan later vinden dat ze een zeer vergelijkbaar object moet maken met slechts in geringe mate verschillen (misschien uit te breiden de functionaliteit van het vorige object in een nieuwe context). Dit is waar de overname komen. Een object dat een programmeur "afgeleid" van een ander "base" object erft de methoden en variabelen van die klasse, en kan vervolgens meer functionaliteit aan toevoegen (zoals in het volgende voorbeeld van Java):

    openbare klasse bol {}

    public int straal;

    }

    openbare klasse bal breidt bol {}

    openbare tekenreeks kleur; Bal voegt de variabele "kleur", maar maakt ook gebruik van de variabele "radius"

    }

Meervoudige overerving

  • Op een gegeven moment zou kunnen een programmeur worden geneigd om een enkele klasse ontlenen in meerdere klassen. Dit staat bekend als de "meervoudige overerving" en terwijl schijnbaar nuttig, kunnen problemen veroorzaken, zoals de beruchte "diamant probleem." De diamant probleem treedt op wanneer twee klassen overnemen van dezelfde klasse (zoals klasse B en C die voortvloeien uit klasse A), terwijl een ander (D) klasse overerft van zowel B en C. Wanneer een D-object is gemaakt, het systeem beschouwd als een soort van de basisklasse (klasse "Bal" is een "Sphere", bijvoorbeeld). In het probleem van de diamant, het systeem niet kan bepalen resoluut welke klasse D is (is het type A-B-D of type A-C-D?) waardoor problemen.

Java en meervoudige overerving

  • Vanwege de problemen met veelvoudige overerving staat Java geen veelvoudige overerving. Echter, de klassen eigenlijk uit meerdere basisklassen voortvloeiende kan worden bereikt op een veilige manier door het gebruik van "interfaces". Een interface is vergelijkbaar met een klasse, behalve dat het doet alleen de structuur van de klasse, maar niet de eigenlijke code wordt gedefinieerd. Een basis klasse die een interface implementeert niet noodzakelijkerwijs "overgenomen" de functionaliteit van de interface: het belooft alleen gebruik van de structuur. Omdat een klasse die een interface implementeren niet van een andere klasse overgenomen (en dit niet een type van de klasse base is), dan is de programmeur kunt implementeren meerdere interfaces met behulp van dezelfde klasse.

Voorbeeld: Erfenis en Interfaces

  • In het volgende voorbeeld toont het verschil tussen objectovername en een interface. Nog belangrijker is, krijgt een klasse die van een andere overerft toegang tot de basisklasse omdat het in wezen wordt een type van die klasse (zoals in de klassen "Bal" en "Sphere"). Een klasse die een interface implementeert alleen belooft om de structuur van de interface: het is niet een soort die interface:

    Interface Basic {}

    int doubleA(); Merk op: geen werkelijke code wordt gedefinieerd in de interface

    }

    openbare klasse B implementeert Basic {}

    public int;

    public int doubleA() //Class B moet het definiëren van de "doubleA()"-methode voor de uitvoering van "Basic"

    {terug een * 2;}

    }

Gerelateerde Artikelen

Wat Is een gebeurtenis in Java?

Wat Is een gebeurtenis in Java?

Java-toepassingen kunnen maken van gebruikersinterfaces, toestaand gebruikers om toepassingstaken te vervullen. Binnen deze gebruikersinterfaces moet de Java-code kunnen inspelen op de interactie van de gebruiker, tailoring verwerking aan welke actie
Wat Is de functie van Java?

Wat Is de functie van Java?

Java is overal--in uw smartphone, op uw bureaublad, en op uw DVD-spelers en MP3 spelers. Gewoon omdat het overal betekent niet dat de functionaliteit wordt algemeen begrepen. Op haar hart is Java een algemeen gebruik programmeertaal, ontworpen om het
Wat Is Type gieten in Java?

Wat Is Type gieten in Java?

De Java-programmeertaal is "strongly typed". Dit betekent dat wanneer een Java-programma wordt gecompileerd, alle variabelen hebben duidelijk typen aangegeven moeten. Het type van een variabele Beschrijving van de aard van de inhoud heeft. Java
Wat zijn de vier verschillende soorten overname relatie?

Wat zijn de vier verschillende soorten overname relatie?

In C ++ programmeren, is een klasse een gegevensstructuur die definieert een set eigenschappen die kunnen bestaan uit zowel gegevens en functies. Overname maakt een soort van klasse, genaamd de afgeleide klasse, als u wilt dat sommige of alle van de
Hoe overeenkomen met een tekenreeks in een Array gebruikmakend van Java

Hoe overeenkomen met een tekenreeks in een Array gebruikmakend van Java

De klasse string in Java biedt een methode om te controleren of twee tekenreekswaarden gelijk zijn. Met behulp van deze methode in combinatie met een lus en voorwaardelijke instructie, vindt uw programma de index van het element overeenkomen met een
How to Make Low-Acid koffie

How to Make Low-Acid koffie

Zowel uw koffiebonen en uw brouwen methode een verschil maken in de zuurgraad van uw ochtend kopje van joe. Verwerkt laag-zuur koffie te verminderen van het zuur in je koffie, verkleinen de kans op maagklachten, met de bonen van nature een lage zuur,
Hands-On activiteiten voor meervoud zelfstandige naamwoorden

Hands-On activiteiten voor meervoud zelfstandige naamwoorden

Wanneer de reguliere werkbladen en blackboard lessen zijn niet te snijden voor het aanleren van de grammatica, proberen sommige hands-on aanpak om kinderen meer enthousiast over leren delen van meningsuiting als meervoud zelfstandige naamwoorden. Beg
Wat Is Java Update?

Wat Is Java Update?

Java is een web-gespecialiseerd programmeertaal die wordt gebruikt voor vele soorten internettoepassingen. Een Java update kennisgeving, wat af en toe--op scherm of als een pictogram lijkt--is typisch op de meeste computersystemen die Java ingesteld
Wat Is Java gebruikt voor op een Computer?

Wat Is Java gebruikt voor op een Computer?

Veel web- en desktop toepassingen gebruiken Java, hoewel als gebruiker kan je niet altijd beseffen dat het draait. Als u software en websites, voor werk of persoonlijke functies gebruikt, gebruikt u mogelijk programma's geschreven in de Java-taal. Om
Wat betekent "Array dimensie ontbreekt" in Java programmeren?

Wat betekent "Array dimensie ontbreekt" in Java programmeren?

Wanneer u begint te ontwikkelen in Java, er zal onvermijdelijk begrijpen gebeuren wanneer u fouten tegenkomt u niet meteen. De "Array dimensie Missing" fout ontstaat in gevallen waar een matrix niet correct is wordt geïnstantieerd. De fout is ee
Wat Is de Java Jucheck.exe?

Wat Is de Java Jucheck.exe?

Om Java te verbinden met de online server zoeken naar en installeren van updates, moet het een proces in de manager van de taak uitvoeren. Jucheck.exe is het proces van de Windows dat Java gebruikt om te zoeken naar updates. Het proces op de achtergr
Wat gebeurt er als je niet genoeg enkelvoudig onverzadigde & meervoudig onverzadigd vet?

Wat gebeurt er als je niet genoeg enkelvoudig onverzadigde & meervoudig onverzadigd vet?

Wanneer het tijd komt om te don je zwembroek elke zomer, kan u beloven te Raak nooit vette levensmiddelen weer. Maar die niet uw gezondheid geen gunsten. Vet helpt u bij het absorberen van de voedingsstoffen uit voedsel, en het ondersteunt het behoud
Wat Is de naam van een abstracte pad in Java?

Wat Is de naam van een abstracte pad in Java?

Java-toepassingen kunnen gegevens van externe bronnen, met inbegrip van de bestanden lezen. De Java dossier klasse modellen een abstracte bestand, inclusief de naam en locatie. Ontwikkelaars kunnen in combinatie met andere Java-klassen, programma's w
Wat Is een toewijzingsinstructie te plaatsen in Java?

Wat Is een toewijzingsinstructie te plaatsen in Java?

Java-programma's slaan gegevenswaarden in variabelen. Wanneer een programmeur een variabele in een Java-toepassing maakt, hij verklaart het type en de naam van de variabele, waarna een waarde wordt toegewezen aan het. De waarde van een variabele kan