Trong các phương án sau, phương án mô tả tính đa hình là:
Trả lời:
Đáp án đúng: D
Tính đa hình (Polymorphism) trong lập trình hướng đối tượng cho phép các đối tượng thuộc các lớp khác nhau có thể đáp ứng cùng một thông điệp (phương thức) theo những cách khác nhau. Điều này có nghĩa là một phương thức có thể có nhiều hình thức khác nhau, tùy thuộc vào lớp đối tượng gọi nó.
* **Phương án 1:** Lớp Điểm, Hình tròn cùng có hàm tạo, hàm hủy. => Đây là sự trùng lặp, không phải đa hình.
* **Phương án 2:** Lớp Hình vuông kế thừa lớp Hình chữ nhật. => Đây là tính kế thừa, không phải đa hình.
* **Phương án 3:** Lớp hình tròn kế thừa lớp điểm. => Đây là tính kế thừa, không phải đa hình
* **Phương án 4:** Các lớp Điểm, hình tròn, Hình vuông, hình chữ nhật... đều có phương thức Vẽ. => Đây chính là đa hình. Mỗi lớp có thể định nghĩa phương thức Vẽ theo cách riêng của nó (ví dụ: Điểm vẽ một pixel, Hình tròn vẽ một đường tròn, Hình vuông vẽ một hình vuông). Khi gọi phương thức Vẽ trên một đối tượng, phương thức Vẽ của lớp tương ứng với đối tượng đó sẽ được thực thi.
Vậy đáp án đúng là phương án 4.