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