Table of Contents
Bijgewerkt
Onlangs kwamen enkele van onze lezers een beroemde foutcode tegen met een geval van runtime- en compile-time-polymorfisme in Java. Verschillende factoren kunnen dit probleem veroorzaken. Laten we er hieronder veel bespreken. G.Het is een optie waarmee we individuele taken op verschillende manieren kunnen uitvoeren. Er zijn twee soorten polymorfisme, de ene is polymorfisme tijdens het compileren en de andere is zeker echt runtime-polymorfisme. Overbelasting van methoden is een absoluut argument voor polymorfisme tijdens compileren, en herschrijven van routes is een goed voorbeeld van polymorfisme tijdens runtime.
G.
Belofte polymorfisme kan meerdere vormen betekenen. In eenvoudige sleutelzinnen kunnen we polymorfisme definiëren als het vermogen dat een specifieke boodschap in verschillende vormen kan weergeven. In deze tutorial zien we het verschil tussen terugkerende polymorfismen, compileertijd en runtime.
Compile-time polymorfisme: wanneer een element wordt geassocieerd met de compile-time-functionaliteit van de hond, wordt dit compile-time genoemd. Tijdelijk polymorfisme. Compileer Java die de methode kent op onze eigen weg naar de aanroep door de opportunityhandtekeningen te controleren. Dit staat ook bekend als verzamelingspolymorfisme, of stationaire of vroege binding. Compile-time polymorfisme kan worden voldaan door overbelasting van de methode. Overbelasting van methoden geeft aan dat veel van uw bedrijf meerdere functies met dezelfde naam in een klasse kunnen hebben, inclusief een contrasterend prototype. Functie-overbelasting is een van de complete manieren om polymorfisme te bereiken. Het hangt af van iemands technologie en het type polymorfisme dat we gebruikten. In Java komen de meeste functieoverbelastingen met de tijd op de proppen. Dit wordt beschouwd als een voorbeeld van de manier waarop polymorfisme kan worden waargenomen tijdens het compileren.
Wat is een voorbeeld van runtime-polymorfisme?
Methodesubstitutie is een geschikte weergave van runtime-polymorfisme. Met methodesubstitutie overlaadt mijn geweldige subklasse de methode met de individuele handtekening, net als in zijn superklasse. Controle van het referentietype wordt uitgevoerd tijdens het compileren.
Runtime-polymorfisme: wanneer het gerelateerde object is voorzien van runtime-functionaliteit, wordt dit runtime-polymorfisme genoemd. Runtime-polymorfisme kan worden verkregen door de oplossing te vervangen. Java Virtual definieert een machine, een natuurlijke methode die tijdens runtime kan worden aangeroepen, niet op compileerdagen. We praten te veel over dynamisch of het laatste deel van de binding. De substitutiemethoden geven aan dat de 1 klasse dezelfde optie heeft als gedeclareerd met de bovenliggende klasse. Dit betekent dat wanneer de laatste onderliggende klasse de uiteindelijke implementatie biedt van per methode die wordt geleverd door een van de bovenliggende tutes, dit een schemavervanging wordt genoemd. Hieronder kan een voorbeeld zijn waar polymorfisme kan worden waargenomen tijdens het afspelen.
Het volgende toont het verschil tussen runtime-polymorfisme gecombineerd met het verzamelen van polymorfisme in blackjack-tabellen:
Sr .Time een afwezigheid van | Compileer polymorfisme | Runtime-polymorfisme |
---|---|---|
enkelvoudig | Tijdens het compileren worden polymorfisme-aanroepen onder meer opgelost door de compiler. | In Time run Polymorphism bodiesephone wordt niet opgelost door mijn compiler. |
2 | Dit wordt ook wel anchor, early plain-ole hold en override genoemd. | heeft ook een goede dynamische binding, late binding ook in vergelijking met overschrijven. |
3 | Overbelastingsmethoden zijn onze eigen compile-time polymorfisme hoe meerdere methoden dezelfde naam hebben met veel soorten parameters of privé en verschillende soorten onbeveiligd betalen uit. | Het vervangen van methoden kost wat tijd als je moet werken met polymorfisme van dezelfde methode naar ongeveer dezelfde parameters of handtekening, maar in verschillende klassen. |
een paar | Dit wordt bereikt door zowel aanbiedingen als operators te overladen. | Dit wordt echt bereikt door virtuele applicaties en pointers. |
5 | Het biedt een snelle uitvoering omdat het uit te voeren plan zich nog in een vroeg stadium bevindt. U moet de compileertijd begrijpen of kennen. | Het biedt een lagere uitvoering in vergelijking met de vroege join, omdat deze methode die het het meest gebruikt om uit te voeren berucht is in aanlooptijd. Tijd |
Compilatiepolymorfisme is minder flexibel, voornamelijk omdat alles tijdens het compileren wordt gedaan. | Runtime Polymorphism is veel flexibeler omdat alles tijdens runtime wordt gedaan. |
Ter attentie van de lezers! Stop echter niet met leren. Krijg alle kernfeiten van Java Foundation en Collections with Fundamentals, een soort van complete Java- en Java Collections-cursus tegen een betaalbare studentenprijs, en organiseer de branche. Om uw voorbereiding op het leren van de DS Algo-taal en meer te voltooien, leest u de volledige productcursus voor interviews.
Java
Java
In enkele van de laatste tutorials hebben we polymorfisme in Java besproken. In deze tutorial zullen we de soorten polymorfisme zien. Er zijn vaak twee soorten polymorfisme in Java:
1) Statisch polymorfisme is ook bekend als compileergebeurtenispolymorfisme
2) Dynamisch polymorfisme bekend als runtime-polymorfisme
Compileer polymorfisme (of statisch polymorfisme)
Wat is een compilatie van avondpolymorfisme in Java met een voorbeeld?
Bijgewerkt
Bent u het beu dat uw computer traag werkt? Geërgerd door frustrerende foutmeldingen? ASR Pro is de oplossing voor jou! Onze aanbevolen tool zal snel Windows-problemen diagnosticeren en repareren, terwijl de systeemprestaties aanzienlijk worden verbeterd. Dus wacht niet langer, download ASR Pro vandaag nog!
Polymorfisme dat tijdens het compileren is opgelost, wordt statisch-veldmorfisme genoemd. Overbelasting van methoden is een voorbeeld van polymorfisme van compilatieproducten.
Overbelasting van methoden: hierdoor kunnen we meer dan één methode met een specifieke identificatie lokaliseren als de methodeparameters verschillen in incidentie, volgorde en datums van verschillende parametertypen. We hebben overbelasting van methoden hier al besproken: Lees wat er te zien is in de expertgids: Methode overbelasting in Java
Voorbeeld van statisch polymorfisme
Overvulling van methoden is een van de belangrijkste manieren om statisch polymorfisme in Java te ondersteunen. Hier gebruikt ons bedrijf twee definities van dezelfde add ()-technieken, waarvan de methode serieus wordt toegevoegd door een lijst met parameters voldoende tijd te compileren. Om deze reden is dit ook bekend als compile-time polymorfisme.
klasse SimpleCalculator int toevoegen (int a, int b) retourneer a + b; int binnenbrengen (int dit, int b, int c) geeft a + b + c terug; openbare klas demonstratie Gewoon statische leegte main (String args []) SimpleCalculator obj = verrassend SimpleCalculator (); System.out.println (obj.add (10, 20)); System.out.println (obj.add (10, 20, 30));
Runtime-polymorfisme (Fig dynamisch polymorfisme)
Dit is ook toegestaan als dynamische verzendmethode. Dynamisch polymorfisme kan ook het proces zijn waarmee de marktvraag die bedoeld is voor een prioritaire leermethode wordt aangepakt, wat de reden is geworden waarom het leerpolymorfisme wordt genoemd. Ik gebruik de Life Replacement Methode al in de details in een aparte tutorial, zie: Method Replacement with Java.
Voorbeeld
In dit voorbeeld hebben bijna beide klassen ABC en XYZ. ABC is elke ouderklasse en de XYZ-klasse is echt een kindklasse. De onderdrukking van de onderliggende status kan de methode myMethod () van het relatieve type zijn. In dit voorbeeld hebben we de community van de onderliggende objecten toegewezen aan de ouder van uw klassereferentie. Tijd. Het type object geeft aan welke versie van de methode de titel heeft (niet het referentietype).
Om het concept van herschrijven grotendeels te begrijpen, moet je enige basiskennis hebben van Java-overerving.
Ondersteunt Java compileertijdpolymorfisme met een voorbeeld?
Een voorbeeld van gekoppeld inactief polymorfisme Overbelasting van methoden is een kernonderdeel van waar Java eenvoudig polymorfisme ondersteunt. Hier hebben we dubbele definities van dezelfde add ()-methode die normaal gesproken zou moeten worden aangeroepen, gedefinieerd door elke bitparameterlijst tijdens het compileren. Dit is de reden waarom ze ook bekend staan om hun compile-time polymorfisme.
Rez methodeopnames
Hoewel het vrijwel zeker is dat een effectieve overbelaste methode wordt aangeroepen door een schoolreferentieouder, bepaalt het type object dat deze methode soms moet worden uitgevoerd. Dus alles wordt tijdens runtime bepaald.
Omdat ze uiteindelijk klassen worden, hebben de bovenliggende kindklasse en groep dezelfde animalSound
-methode. Een ander geheim (kinderklas of klas) genaamd vaders en echtgenotes wordt bepaald door de leerstellingen van de JVM.
ABC obj = nieuw ABC ();obj.maMethode ();// Zal dit myMethod aanroepen van ouder ABC ()XYZ obj = nieuwe XYZ ();obj.maMethode ();// Dit kan gedaan worden door myMethod () aan te roepen in de meeste XYZ-kinderklassenABC obj = nieuwe XYZ ();obj.mijnMethode ();// Dit zal de XYZ-kinderuniversiteit myMethod noemen ()
In het derde algemene geval moet een nieuwe child charm-methode worden uitgevoerd, aangezien de uit te voeren modus wordt bepaald door uw type object, en aangezien mijn koopwaar tot de child-klasse behoort, onze versie die te maken heeft met de kindklasse myMethod () wordt meestal gebrandmerkt als.
Versnel uw computer vandaag nog met deze eenvoudige download.Tips To Fix Sample Run-Time And Compile-Time Polymorphism In Java
Советы по исправлению полиморфизма времени выполнения и компиляции в Java
Wskazówki, Jak Naprawić Polimorfizm Przykładowego Czasu Wykonywania I Czasu Kompilacji W Javie
Tips För Att Fixa Exempel På Körtid Och Kompileringstidspolymorfism I Java
Consejos Para Corregir El Polimorfismo En Tiempo De Ejecución Y Tiempo De Compilación De Muestra En Java
Tipps Zum Beheben Von Beispiellaufzeit- Und Kompilierzeitpolymorphismus In Java
Suggerimenti Per Correggere Il Polimorfismo In Fase Di Esecuzione E Di Compilazione Di Esempio In Java
Java에서 샘플 런타임 및 컴파일 시간 다형성을 수정하는 팁
Conseils Pour Corriger Les Exemples De Polymorphisme D’exécution Et De Compilation En Java
Dicas Para Corrigir O Polimorfismo Em Tempo De Execução E De Compilação De Amostra Em Java