Η μέθοδος Overloading στη Java επιτρέπει την ύπαρξη πολλαπλών μεθόδων με το ίδιο όνομα, αλλά με διαφορετικές παραμέτρους.
Αυτό σημαίνει ότι μπορούμε να ορίσουμε μια σειρά από μεθόδους με το ίδιο όνομα, αλλά να έχουν διαφορετικό τύπο, αριθμό ή σειρά παραμέτρων. Όταν καλείται η μέθοδος με το συγκεκριμένο όνομα, ο μεταγλωττιστής της Java θα επιλέξει την κατάλληλη μέθοδο με βάση τις παραμέτρους που δίνονται στην κλήση.
Με αυτόν τον τρόπο, μπορούμε να δημιουργήσουμε πιο ευέλικτο και ευανάγνωστο κώδικα, καθώς μπορούμε να επεκτείνουμε τη λειτουργικότητα μιας μεθόδου με διαφορετικούς τύπους παραμέτρων, αντί να χρειάζεται να δημιουργήσουμε νέο όνομα μεθόδου.
public class Example { // Μέθοδος που προσθέτει δύο ακέραιους αριθμούς και επιστρέφει το αποτέλεσμα static int plusMethod(int x, int y) { return x + y; } // Μέθοδος που προσθέτει δύο δεκαδικούς αριθμούς και επιστρέφει το αποτέλεσμα static double plusMethod(double x, double y) { return x + y; } public static void main(String[] args) { // Κλήση της plusMethod με δύο ακέραιους αριθμούς και αποθήκευση του αποτελέσματος στη μεταβλητή myNum1 int myNum1 = plusMethod(8, 5); // Κλήση της plusMethod με δύο δεκαδικούς αριθμούς και αποθήκευση του αποτελέσματος στη μεταβλητή myNum2 double myNum2 = plusMethod(4.3, 6.26); // Εκτύπωση του αποτελέσματος της myNum1 μετατρέποντας το σε κείμενο και προσθέτοντας το κείμενο "int: " System.out.println("int: " + myNum1); // Εκτύπωση του αποτελέσματος της myNum2 μετατρέποντας το σε κείμενο και προσθέτοντας το κείμενο "double: " System.out.println("double: " + myNum2); } }
Ο παραπάνω κώδικας περιέχει τη δήλωση μιας κλάσης με όνομα “Example”. Η κλάση περιλαμβάνει δύο στατικές μεθόδους plusMethod
και την κύρια μέθοδο main
.
Οι μέθοδοι plusMethod
είναι υπεύθυνες για την πρόσθεση δύο αριθμών. Υπάρχει μια μέθοδος με το ίδιο όνομα αλλά διαφορετικούς τύπους παραμέτρων: μια για ακέραιους αριθμούς και μια για δεκαδικούς αριθμούς. Και οι δύο μέθοδοι επιστρέφουν το αποτέλεσμα της πρόσθεσης.
Στην κύρια μέθοδο main
, πραγματοποιούνται δύο κλήσεις των plusMethod
. Αποθηκεύονται τα αποτελέσματα στις μεταβλητές myNum1
(τύπου ακέραιος) και myNum2
(τύπου δεκαδικός). Έπειτα, τα αποτελέσματα εκτυπώνονται στην οθόνη χρησιμοποιώντας τη μέθοδο System.out.println
. Το κείμενο “int: ” ή “double: ” συνδυάζεται με τα αποτελέσματα των μεθόδων για να εμφανιστούν στην οθόνη.
Το αποτέλεσμα στην οθόνη θα είναι:
int: 13 double: 10.56
Αυτό συμβαίνει επειδή η μέθοδος plusMethod(8, 5)
προσθέτει τους δύο ακέραιους αριθμούς 8 και 5, επιστρέφοντας το αποτέλεσμα 13. Στη συνέχεια, η μέθοδος plusMethod(4.3, 6.26)
προσθέτει τους δύο δεκαδικούς αριθμούς 4.3 και 6.26, επιστρέφοντας το αποτέλεσμα 10.56. Τα αποτελέσματα αυτά εμφανίζονται στην οθόνη μαζί με το κατάλληλο κείμενο που τα προηγείται.
Αντί να δημιουργήσουμε δύο διαφορετικές μεθόδους που έχουν την ίδια λειτουργία, είναι προτιμότερο να χρησιμοποιήσουμε τη μέθοδο Overloading.