Υπερφόρτωση (Overloading)
Γενικά
Με την Υπερφόρτωση μπορούμε να έχουμε δύο μεθόδους με το ίδιο όνομα αλλά διαφορετικό αριθμό ή/και τύπο παραμέτρων.
Αυτό μπορεί να γίνει στην ίδια κλάση. Κλασικό παράδειγμα η υπρρφότωση των δημιουργών.
Παράδειγμα overloading με δημιουργούς
public class Circle { private int radius; private int x; private int y; public Circle() { this.x = 10; this.y = 10; this.radius = 20; } public Circle(int radius) { this.radius = radius; } public Circle(int radius, int x, int y) { this.radius = radius; this.x = x; this.y = y; } } public class Main { public static void main(String[] args) { // creates a circle with defaults Circle circle1 = new Circle(); // creates a circle with R=50 and default center Circle circle2 = new Circle(50); // creates a circle with R=100, center(x, y) = (50, 70) Circle circle3 = new Circle(100, 50, 70); } }
Παράδειγμα overloading με μέθοδο.
public class Graphics { public void draw(String text) { // draws the text } public void draw(Circle circle) { // draws the circle } public void draw(Rectangle rect) { // draws the rectangle } }