Rate this post

Overloading trong Java là tính năng cho phép một lớp hoặc interface có nhiều phương thức có cùng tên nhưng có tham số khác nhau. Điều này cho phép tái sử dụng tên phương thức và giúp cho mã đọc dễ hơn.

Các bài viết liên quan:

Trong Java, overloading có thể được thực hiện bằng cách sử dụng cùng một tên cho nhiều phương thức khác nhau với số lượng, kiểu và thứ tự các tham số khác nhau.

Khi gọi một phương thức đã được overload, Java sẽ tìm kiếm phương thức với tham số phù hợp và gọi đến phương thức đó. Nếu không tìm thấy phương thức phù hợp, sẽ xảy ra lỗi compile-time.

Ví dụ:

class Example {
    public void print(int a) {
        System.out.println("printing int: " + a);
    }
    public void print(double a) {
        System.out.println("printing double: " + a);
    }
    public void print(String a) {
        System.out.println("printing String: " + a);
    }
}

Trong ví dụ trên, lớp Example có 3 phương thức có tên là print với tham số lần lượt là int, double và String.

Có thể gọi phương thức trên:

Example obj = new Example();
obj.print(5);
obj.print(3.14);
obj.print("Hello World");

Một vài ví dụ sử dụng overloading trong java

Ví dụ 1: Overloading constructor

class Rectangle {
    int length;
    int breadth;
 
    Rectangle() {
        length = 0;
        breadth = 0;
    }
 
    Rectangle(int l, int b) {
        length = l;
        breadth = b;
    }
 
    Rectangle(int side) {
        length = side;
        breadth = side;
    }
 
    int area() {
        return length * breadth;
    }
}

Trong ví dụ trên, lớp Rectangle có 3 constructor khác nhau với số lượng tham số khác nhau: không có tham số, 2 tham số và 1 tham số.

Ví dụ 2: Overloading phương thức

class Calculator {
    int add(int a, int b) {
        return a + b;
    }
    int add(int a, int b, int c) {
        return a + b + c;
    }
    double add(double a, double b) {
        return a + b;
    }
}

Trong ví dụ trên, lớp Calculator có 3 phương thức có tên add với tham số lần lượt là 2 int, 3 int và 2 double.

Ví dụ 3: Overloading toán tử

class Complex {
    int real, imag;
 
    Complex() {
        real = 0;
        imag = 0;
    }
 
    Complex(int r, int i) {
        real = r;
        imag = i;
    }
 
    Complex operator + (Complex c) {
        Complex temp = new Complex();
        temp.real = real + c.real;
        temp.imag = imag + c.imag;
        return temp;
    }
}

Trong ví dụ trên, lớp Complex có một phương thức operator + với tham số là một đối tượng Complex.

Các ví dụ trên chỉ là một số ví dụ cơ bản về cách sử dụng overloading trong Java, còn rất nhiều cách khác để sử dụng nó.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now