1. Phương thức nạp chồng Overloading :
Tức là nhiều method ( phương thức ) có CÙNG TÊN, nhưng lại khác tham số truyền vào. Các bạn lưu ý là cùng tên nhưng khác tham số, nếu cùng tên, cùng tham số nhưng khác kiểu dữ liệu thì không được.
Một số đặc điểm đáng ghi nhớ :
- Hàm tạo( các Constructor) cũng có thể được nạp chồng.
- Tùy theo ta gọi đối số thế nào mà nó sẽ gọi hàm tương ứng.
- Overloading thể hiện cho tính đa hình trong OOP, một method có thể có nhiều cách định nghĩa
--- Như này là OKE
---- Như này là hỏng
2. Phương thức ghi đè Override :
- Là phương thức xuất hiện ở lớp cha và LẠI xuất hiện ở lớp con.
- Phương thức này khi được gọi ở 1 đối tượng lớp con sẽ bị ghi đè, gọi tại method của lớp con mà không gọi ở lớp cha.
- Nếu lớp con không có phương thức này thì khi gọi sẽ được gọi tại lớp cha.
Ví dụ:
Tức là nhiều method ( phương thức ) có CÙNG TÊN, nhưng lại khác tham số truyền vào. Các bạn lưu ý là cùng tên nhưng khác tham số, nếu cùng tên, cùng tham số nhưng khác kiểu dữ liệu thì không được.
Một số đặc điểm đáng ghi nhớ :
- Hàm tạo( các Constructor) cũng có thể được nạp chồng.
- Tùy theo ta gọi đối số thế nào mà nó sẽ gọi hàm tương ứng.
- Overloading thể hiện cho tính đa hình trong OOP, một method có thể có nhiều cách định nghĩa
--- Như này là OKE
private void run(int x){}
private void run(){}
---- Như này là hỏng
private void run(int x)
private int run(int x)
2. Phương thức ghi đè Override :
- Là phương thức xuất hiện ở lớp cha và LẠI xuất hiện ở lớp con.
- Phương thức này khi được gọi ở 1 đối tượng lớp con sẽ bị ghi đè, gọi tại method của lớp con mà không gọi ở lớp cha.
- Nếu lớp con không có phương thức này thì khi gọi sẽ được gọi tại lớp cha.
Ví dụ:
class Animal
{
int weight;
public void run()
{
System.out.println("Animal run");
}
public void shout()
{
System.out.println("Animal shout");
}
}
class Cat extends Animal
{
public void run()
{
System.out.println("Cat run");
}
}
public static void main(String[] args)
{
Animal b = new Cat();
b.run(); // Gọi đến method của lớp con
Animal c = new Animal();
c.run(); // Gọi đến method của lớp cha
b.shout(); // Gọi đến method của lớp cha do lớp con không có }
Đăng nhận xét