Belangrijk verschil : overbelasting betekent twee methoden van dezelfde klasse met dezelfde naam en met verschillende parametertypen, terwijl dwingende middelen twee verschillende methoden in dezelfde klasse met dezelfde parametertypen, maar met verschillende implementaties hebben.
De methoden die worden overschreven en overladen, zijn twee concepten of technieken die worden gebruikt in Java-programmeertalen. Beide concepten stellen de programmeur in staat om verschillende implementaties te bieden voor methoden met dezelfde naam. Dit artikel maakt een onderscheid tussen de twee concepten van programmeren.
Functieoverbelasting of overbelasting van de methode maakt het mogelijk verschillende methoden onder dezelfde naam te maken, in dezelfde klasse maar verschillend van elkaar in de invoer en het uitvoertype van de functie. Het wordt simpelweg gedefinieerd als het vermogen van één functie om verschillende taken uit te voeren.
Bij overbelasting delen de methode-implementaties dezelfde naam omdat ze vergelijkbare taken uitvoeren. Overbelasting wordt ook beschouwd als polymorf van aard. De functies met verschillende implementaties zijn afhankelijk van hun opgegeven argumenttypen. Het wordt meestal geassocieerd met statische programmeertalen die het controleren van typen in functieaanroepen afdwingen. Het wordt ook als praktisch beschouwd omdat het de programmeur toestaat om een aantal verschillende methoden in dezelfde klasse te schrijven. Bij overbelasting verandert de runtime-processor echter de naam van alle overbelaste methoden, wat een probleem kan zijn.
Methode-overschrijving, in objectgeoriënteerd programmeren, is een functie waarmee een subklasse of onderliggende klasse een specifieke implementatie van een methode kan bieden die al wordt geleverd door een van zijn superklassen of bovenliggende klassen. De implementatie in de subklasse overschrijft of vervangt de implementatie in de bovenliggende klasse door een methode onder dezelfde naam, dezelfde parameters of handtekening en hetzelfde retourtype te bieden als de methode in de bovenliggende klasse.
Bij het overschrijven van de methode zijn de functies gecodeerd om specifieke taken in een programma uit te voeren. Overschrijven is afhankelijk van de aanwezigheid van een basisklasse-functie voor het uiterlijk. Hier wordt de uitgevoerde functie bepaald door het object dat wordt gebruikt om het op te roepen, dwz als een object van een bovenliggende klasse wordt gebruikt om de methode aan te roepen, dan wordt de functie in de bovenliggende klasse uitgevoerd. Overheersend is polymorf van aard; het helpt bij het ontwerpen van programma's op basis van de eerste impliciete parameter, die tijdens runtime kan worden opgelost. Er zijn enkele talen in Java die een programmeur toestaan om te voorkomen dat een methode wordt overschreven.
Vergelijking tussen overbelasting en overschrijven:
overbelasting | overschrijven | |
Definitie | Dit betekent dat u methoden van dezelfde klasse onder dezelfde naam gebruikt, maar elke methode heeft andere parameters of heeft dezelfde parameters met verschillende typen en volgorde. | Dit betekent dat u een subklasse met dezelfde methoden onder dezelfde naam en exact hetzelfde type parameters en hetzelfde retourtype als een superklasse hebt. |
Betekenis | Dit betekent dat meer dan één methode dezelfde naam delen in dezelfde klasse, maar een andere handtekening hebben. | Dit betekent dat de methode van de basisklasse opnieuw wordt gedefinieerd in de afgeleide klasse met dezelfde handtekening. |
Gedrag | Het voegt het gedrag toe of breidt het uit. | Het verandert het bestaande gedrag van een methode. |
polymorfisme | Het is een compileertijd polymorfisme. | Het is een looptijd polymorfisme. |
Statische methode | De statische methode kan worden overbelast. | De statische methode kan niet worden overschreven. |
Binding | Statische binding. | Dynamische binding. |
Erfenis | Het kan al dan niet overerving vragen. | Het vereist altijd overerving. |
Vereniging | Het wordt meestal geassocieerd met statische programmeertalen. | Het wordt meestal geassocieerd met objectgeoriënteerde programma's. |
Handtekening | Methoden hebben een andere signatuur. | Methoden moeten dezelfde handtekening hebben. |
Snelheid | Het is sneller dan overheersend. | Het is traag in vergelijking met overbelasting. |
Klassen | Het vereist niet meer dan één klasse voor overbelasting. | Het vereist ten minste twee klassen voor overbelasting. |
Niveau | Methoden kunnen elk toegangsniveau hebben. | Methoden hebben hetzelfde of een breed toegangsniveau. |
Voorbeeld | Klasse toevoegen { int sum (int a, int b) { return a + b; } int sum (int a) { retourneer een + 10; } } | Klasse A // Super klasse { ongeldige weergave (int num) { print num; } } // Klasse B erft Klasse A Klasse B // Subklasse { ongeldige weergave (int num) { print num; } } |