Java Polymorphism
Polymorphism có nghĩa là “nhiều dạng”, và nó xảy ra khi chúng ta có nhiều lớp có liên quan với nhau theo kế thừa.
Giống như chúng tôi đã nêu trong chương trước; Kế thừa cho phép chúng ta kế thừa các thuộc tính và phương thức từ một lớp khác. Tính đa hình sử dụng các phương pháp đó để thực hiện các nhiệm vụ khác nhau. Điều này cho phép chúng tôi thực hiện một hành động theo những cách khác nhau.
Ví dụ, hãy nghĩ về một lớp cha được gọi Animal
có một phương thức được gọi là animalSound()
. Các lớp con của Động vật có thể là Lợn, Mèo, Chó, Chim – Và chúng cũng có cách triển khai âm thanh động vật của riêng mình (lợn kêu và mèo kêu, v.v.):
Thí 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");
}
}
Hãy nhớ từ chương Kế thừa rằng chúng ta sử dụng extends
từ khóa để kế thừa từ một lớp.
Bây giờ chúng ta có thể tạo Pig
và Dog
các đối tượng và gọi animalSound()
phương thức trên cả hai:
Thí 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");
}
}
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();
}
}
Tại sao Và Khi nào Sử dụng “Kế thừa” và “Đa hình”?
– Nó hữu ích cho khả năng tái sử dụng mã: sử dụng lại các thuộc tính và phương thức của một lớp hiện có khi bạn tạo một lớp mới.