Hoe los virtuele erfenis die diamantprobleem op?
Hoe los virtuele erfenis die diamantprobleem op?

Video: Hoe los virtuele erfenis die diamantprobleem op?

Video: Hoe los virtuele erfenis die diamantprobleem op?
Video: Samsung Front Load Washer Error Codes and Test Mode - How to Troubleshoot a Samsung WF42H* Washer 2024, Mei
Anonim

Virtuele erfenis los op die klassieke Diamant probleem ”. Dit verseker dat die kinderklas slegs 'n enkele instansie van die gemeenskaplike basisklas kry. Met ander woorde, die Slang-klas sal het net een geval van die LivingThing-klas. Die Diere- en Reptielklasse deel hierdie geval.

Wat is die diamantprobleem in hierdie verband?

Die diamant probleem ” is 'n dubbelsinnigheid wat kan ontstaan as gevolg van die toelaat van veelvuldige erfenis . Dit is 'n ernstige probleem vir tale (soos C++) wat vir veelvuldige voorsiening maak erfenis van staat. In Java egter veelvuldig erfenis word nie toegelaat vir klasse nie, slegs vir koppelvlakke, en dit bevat nie toestand nie.

Gevolglik is die vraag hoe 'n virtuele basisklas help met oorerwing? Virtuele basisklasse bied 'n manier om spasie te bespaar en onduidelikhede te vermy klas hiërargieë wat meervoudige oorerwings gebruik. Wanneer 'n basisklas word gespesifiseer as 'n virtuele basis , kan dit as 'n indirekte optree basis meer as een keer sonder duplisering van sy datalede.

Weet ook, wat is virtuele openbare erfenis?

Virtuele erfenis is 'n C++-tegniek wat verseker dat slegs een kopie van 'n basisklas se lidveranderlikes is geërf deur kleinkind-afgeleide klasse. Hierdie kenmerk is die nuttigste vir veelvuldige erfenis , soos dit maak die virtuele baseer 'n gemeenskaplike subvoorwerp vir die afgeleide klas en alle klasse wat daaruit afgelei is.

Hoe los Interface diamantprobleem op?

Hoe doen met behulp van 'n koppelvlak in Java oplos die diamant probleem ? Dus, as twee koppelvlakke het dieselfde metode handtekening en 'n klas wil van hierdie twee erf (implementeer in Java). koppelvlakke , daar is geen "metodeliggaam" om te erf nie, dus " diamant erfenis" uitgawe vermy word.

Aanbeveel: