Ontwikkelaars ontworpen Java van de grond af op te treden als een volledig objectgeoriënteerde programmeertaal . Vanwege dit , concepten integraal naar object - georiënteerd programmeren weer heel belangrijk in het basis Java -functionaliteit . Bijzonder , begrippen klasse overerving ( en de problemen die vorm klasse overerving ontstaan ) zijn fundamentele zorgen om de Java -programmeur . Een van die problemen , multiple inheritance , kunnen worden omzeild met een begrip van hoe de overerving werkt , en hoe je Java -interfaces te gebruiken . OOP en Inheritance Object Oriented Programming gebruikt het concept van de erfenis om de functionaliteit van objecten uit te breiden . Beschouw als een programmeur een object gemaakt , ze kan later vinden dat ze een zeer vergelijkbare object met slechts geringe verschillen (misschien om de functionaliteit van de vorige object in een nieuwe context te verlengen) moeten maken . Hier overerving komen inch Een object dat een programmeur " afgeleid " van een "basis " object erft de methoden en variabelen van die klasse , en kan vervolgens toevoegen meer functionaliteit toevoegen ( zoals in het volgende voorbeeld Java ) openbare klasse Sphere { public int straal ; } public class Ball breidt Sphere { public string kleur ; //Bal voegt de " kleur" variabel , maar maakt ook gebruik van de "radius " variable } Multiple Inheritance Op een bepaald moment , kan een programmeur te worden verleid tot een enkele klasse afleiden van meerdere klassen . Dit staat bekend als " multiple inheritance " en terwijl schijnbaar nuttig , kunnen problemen , zoals het bekende oorzaak " diamond probleem . " De diamant probleem treedt op wanneer twee klassen erven van dezelfde klasse ( zoals klasse B en C die uit klasse A ) , terwijl een andere klasse ( D ) erft van zowel B en C. Wanneer een D- object is gemaakt, het systeem behandelt het als een soort van de basisklasse ( class " Ball " is een " Sphere ", bijvoorbeeld) . In de diamant probleem , kan het systeem niet besluitvaardig bepalen welke klasse D is ( is het typt ABD of het type ACD ? ) Welke problemen Java en Multiple Inheritance veroorzaakt . Vanwege de problemen met multiple inheritance , is Java niet toe multiple inheritance . Echter daadwerkelijk afkomstig klassen van meerdere base classes worden verwezenlijkt in een veilige wijze door het gebruik van " interfaces . " Een interface is vergelijkbaar met een klasse , behalve dat het enkel bepaalt de structuur van de klasse, maar niet de werkelijke code . Een basis klasse die een interface implementeert niet noodzakelijkerwijs " erven " de functionaliteit van de interface : het belooft enkel de structuur te gebruiken . Omdat een klasse die een interface biedt niet erven van een andere klasse ( en dit is niet een soort van de basisklasse ) , dan is de programmeur kan meerdere interfaces met behulp van dezelfde klasse implementeren Voorbeeld : . Inheritance en interfaces het volgende voorbeeld toont het verschil tussen object overerving en een interface . Belangrijk is een klasse die erft van een toegang krijgt tot de basisklasse omdat het wordt in wezen een soort die klasse ( zoals in de "bal " en " Gebied " klassen) . Een klasse die een interface implementeert belooft alleen maar om de structuur van de interface te implementeren : het is niet een soort van die interface : -interface Basic { int DoubleA ( ) ; //mededeling : geen eigenlijke code is gedefinieerd in de interface } openbare klasse B implementeert Basic { public int a ; public int DoubleA ( ) //klasse B moet de " DoubleA ( ) " methode uit te voeren " Basic " definiëren {return a * 2 ; } }
|