Phân biệt Overloading và Overriding trong Java

Overloading và Overriding là hai khái niệm quan trọng trong Java. Tuy nhiên rất nhiều lập trình viên không phân biệt được sự khác biệt giữa Overloading và Overriding và thậm chí một số còn cho rằng hai khái niệm này là một. Trong bài viết này chúng ta sẽ cùng nhau tìm hiểu sự khác biệt giữa Overloading và Overriding thông qua hai ví dụ đơn giản. Trước hết chúng ta cùng tìm hiểu về khái niệm Overloading.

Overloading và Overriding

Overriding Là Gì

Overriding xuất hiện khi trong class con tồn tại một method được định nghĩa với cùng tên và cùng số lượng tham số với method của class cha.

Ví dụ:

class Animal {
    public int canFly(){
        return false;
    }
}

class Bird extends Animal{
    // overriding
    public int canFly(){
        return true;
    }
}

Trong ví dụ trên chúng ta có hai class là Animal và Bird trong đó class Bird mở rộng class Animal. Cả hai class đều định nghĩa một method với tên là canFly() và method này có cùng số lượng tham số. Chúng ta nói method canFly() trong lớp cha Animal bị override bởi lớp con Bird.

Overloading Là Gì

Overloading xuất hiện khi trong một class tồn tại một method được định nghĩa với cùng tên nhưng khác số lượng tham số đầu vào với method của class cha.

Ví dụ:

class  {
    public int sum(a, b){
        return a + b;
    }

    // overloading
    public int sum(a, b, c){
        return a + b + c;
    }
}

Trong ví dụ trên class Calculator có hai method với cùng một tên là sum tuy nhiên method thứ hai được định nghĩa với số lượng tham số nhiều hơn method thứ nhất. Chúng ta nói method sum thứ hai overload method sum thứ nhất

Related posts