Overbelaste methoden zijn methoden in dezelfde klasse die dezelfde naam hebben, maar verschillende typen variabelen als argumenten accepteren. Een klasse kan bijvoorbeeld twee verschillende 'add'-methoden bevatten: een die twee dubbele waarden accepteert, 'add (double a, double b)' en een die twee dubbele waarden accepteert. gehele waarden, "add (int a, int b)." De computer beslist automatisch welke methode wordt aangeroepen tijdens runtime op basis van de variabele typen die worden doorgegeven aan de methode.
Flexibiliteit
Overbelaste methoden geven programmeurs de flexibiliteit om een vergelijkbare methode aan te roepen voor verschillende soorten gegevens. Als u bijvoorbeeld aan een wiskundeprogramma werkt, kunt u overbelasting gebruiken om meerdere "vermenigvuldigen" -klassen te maken, die elk een ander aantal type argument vermenigvuldigen: de eenvoudigste "vermenigvuldigen (int a, int b)" vermenigvuldigt twee gehele getallen; de meer gecompliceerde methode "vermenigvuldigen (dubbel a, int b, int c)" vermenigvuldigt een dubbele met twee gehele getallen -- je zou dan roep "vermenigvuldigen" aan op elke combinatie van variabelen waarvoor u een overbelaste methode hebt gemaakt en ontvang het juiste resultaat.
Video van de dag
Constructeurs
Overbelasting wordt ook gebruikt bij constructeurs om nieuwe objecten te maken met verschillende hoeveelheden gegevens. U kunt bijvoorbeeld overloading gebruiken om drie verschillende constructors te maken voor een "Huis"-object met een huisnummer, straatnaam en kleurvariabelen. De eenvoudigste constructor "House()" accepteert geen argumenten en creëert een huis met standaard of lege variabelen. Een complexere constructor, "Huis (int houseNumber, String streetName)," maakt een huis met het opgegeven huisnummer en de straatnaam, maar een standaard of lege kleur. De meest complexe constructor, "House (int houseNumber, String streetName, String color)", maakt een huis met alle gespecificeerde informatie en laat niets als standaard. U kunt dan een huisobject maken op basis van de informatie die momenteel beschikbaar is, waarbij de niet-beschikbare informatie blanco of standaard wordt gelaten.
Dubbelzinnige verwijzingen
Overbelaste methoden moeten verschillende aantallen of soorten argumenten gebruiken om dubbelzinnigheid te voorkomen. Als u twee methoden in dezelfde klasse maakt die dezelfde naam hebben en twee gehele getallen als argumenten accepteert, wordt de Java-compiler kan geen onderscheid maken tussen de twee, zelfs als de invoervariabelen verschillende namen hebben. De methode "add (int a, int b)" kan bijvoorbeeld niet in dezelfde klasse voorkomen als de methode "add (int c, int d)."
Soorten retourzendingen
U moet een retourtype definiëren voor elke overbelaste methode. Methoden kunnen verschillende retourtypen hebben -- bijvoorbeeld "add (int a, int b)" kan een geheel getal retourneren, terwijl "add (double a, double b)" een double retourneert. Java kan echter geen onderscheid maken tussen twee verschillende methoden op basis van hun retourtype. Daarom kan "int vermenigvuldigen (dubbel a, dubbel b)" niet voorkomen in dezelfde klasse als "dubbel vermenigvuldigen (dubbel a, dubbel b)."