Polymorphism
Duy Văn | 11/03/2025
Polymorphism hay tính đa hình là một tính chất của OOP. Đầu tiên phải kể đến Inheritance, nếu tính kế thừa đã cho phép chúnga ta tạo ra class con kế thừa thuộc tính và methods của class cha, thì tính đa hình có thể vịn vào các method này để thực hiện các tác vụ khác nhau
Polymorphism - đa hình có nghĩa là “có nhiều hình thù”, về cơ bản thì trong tình huống có nhiều class con kế thừa từ class cha, chúng có thể overide một hay nhiều method của class cha, các method có thể được gọi theo cùng một cách nhưng hành vi của chúng có thể khác nhau
Ví dụ
class Animal {
public void animalSound() {
System.out.println("The animal makes a sound");
}
}
class Pig extends Animal {
public void animalSound() {
System.out.println("The pig says: wee wee");
}
}
class Dog extends Animal {
public void animalSound() {
System.out.println("The dog says: bow wow");
}
}
Ở Main thì có
class Main {
public static void main(String[] args) {
Animal myAnimal = new Animal(); // Create a Animal object
Animal myPig = new Pig(); // Create a Pig object
Animal myDog = new Dog(); // Create a Dog object
myAnimal.animalSound();
myPig.animalSound();
myDog.animalSound();
}
}
animalSound được gọi cùng một cách, nhưng mỗi method thuộc mỗi class lại có hành vi khác nhau
Polymorphism cũng có thể được diễn đạt thông qua duck rule - if it looks like a duck, swims like a duck, and quacks like a duck, then it probably is a duck. Điều này có nghĩa là một object có thể được gọi theo cùng một cách nhưng hành vi của nó có thể khác nhau. Tức là chúng ta không quan tâm nó thật sự là gì, miễn là nó nhìn, hoạt động như ý chúng ta muốn