Thực hiện kế thừa (inheritance) và đa hình (polymorphism) trong Java

Kế thừa (inheritance) và đa hình (polymorphism) là hai khái niệm quan trọng trong lập trình hướng đối tượng (OOP) của Java. Trong bài viết này, chúng ta sẽ tìm hiểu về cách thực hiện kế thừa và đa hình trong Java.

5 Tips to Secure Java Code from Attackers - SecPod Blog

Kế thừa (Inheritance)

Kế thừa cho phép một lớp (class) con kế thừa các thuộc tính và phương thức từ lớp cha.

Lớp con có thể sử dụng lại mã nguồn của lớp cha, tiết kiệm thời gian và công sức lập trình.

Để kế thừa từ một lớp cha, sử dụng từ khóa “extends”.

Ví dụ: class ChildClass extends ParentClass.

Đa hình (Polymorphism)

Đa hình cho phép một đối tượng có thể thể hiện các hình dạng khác nhau, tức là một đối tượng có thể được coi như đối tượng của nhiều lớp khác nhau.

Đa hình được thể hiện thông qua các phương thức ghi đè (method overriding) và các lớp trừu tượng (abstract class) và giao diện (interface).

Phương thức ghi đè: Lớp con có thể ghi đè (override) phương thức của lớp cha để cung cấp triển khai riêng.

Lớp trừu tượng: Là lớp không thể khởi tạo trực tiếp, chỉ dùng làm lớp cha để các lớp con kế thừa và triển khai các phương thức trừu tượng.

Giao diện: Là một tập hợp các phương thức trừu tượng mà một lớp có thể triển khai để thực hiện các hành vi cụ thể.

Ví dụ về kế thừa và đa hình trong Java

// Lớp cha
class Animal {
public void sound() {
System.out.println("Animal makes a sound");
}
}
// Lớp con kế thừa từ lớp cha
class Dog extends Animal {
public void sound() {
System.out.println(“Dog barks”);
}
}

class Cat extends Animal {
public void sound() {
System.out.println(“Cat meows”);
}
}

// Phương thức sử dụng đa hình
public void makeSound(Animal animal) {
animal.sound();
}

// Sử dụng đa hình
public static void main(String[] args) {
Dog dog = new Dog();
Cat cat = new Cat();

makeSound(dog); // Kết quả: “Dog barks”
makeSound(cat); // Kết quả: “Cat meows”
}

 

Trong ví dụ trên, lớp con DogCat kế thừa từ lớp cha Animal và ghi đè phương thức sound(). Khi chúng ta gọi phương thức makeSound() và truyền vào đối tượng Dog hoặc Cat, phương thức sound() tương ứng của từng lớp con sẽ được gọi. Điều này thể hiện tính chất đa hình của Java.

Java Programming Vector Art, Icons, and Graphics for Free Download

Tóm lại, kế thừa và đa hình là hai khái niệm quan trọng trong lập trình hướng đối tượng của Java. Chúng giúp bạn xây dựng các cấu trúc phân cấp linh hoạt và tận dụng lại mã nguồn một cách hiệu quả.