Cấu trúc các classes với kế thừa và đa hình Python (phần 9)

Các phương thức đa hình

Như chúng ta đã thấy trong 2 ví dụ của chúng ta, một class phụ kế thừa dữ liệu và các phương thức từ class
cha của nó. Chúng ta sẽ không phiền hà tạo class phụ trừ phi 2 class chia sẻ một lượng đáng kể hành vi
trừu tượng. Theo thuật ngữ này, chúng ta có ý rằng các classes có các tập tương tự các phương thức hay
hoạt động. Một class phụ thường thêm thứ gì đó thêm, như một phương thức mới hay một thuộc tính dữ liệu,
vào toàn thể cung cấp bởi siêu class của nó. Một thuộc tính dữ liệu mới được bao gồm trong cả 2 ví
dụ của chúng ta, và một phương thức mới được bao gồm trong cái đầu tiên.
Trong một vài trường hợp, 2 classes có cùng giao diện, hay tập các phương thức có sẵn với các người dùng
bên ngoài. Trong các trường hợp này, một hay nhiều hơn các phương thức trong một class phụ ghi đè các
định nghĩa của cùng các phương thức trong siêu class để cung cấp các phiên bản chuyên biệt của hành vi
trừu tượng. Như bất cứ ngôn ngữ hướng đối tượng nào, Python hỗ trợ khả năng này với các phương thức đa
hình. Thuật ngữ đa hình có nghĩa nhiều hình thể, và nó áp dụng cho 2 phương thức cái có cùng header
nhưng có các định nghĩa khác nhau trong các classes khác nhau. Hai ví dụ là phương thức withdraw
trong trật tự có thứ bậc bank account và phương thức hit trong trật tự có thứ bậc blackjack player.
Phương thức __str__ là một ví dụ tốt về một phương thức đa hình cái xuất hiện xuyên suốt hệ thống các classes
của Python.
Như các cơ chế trừu tượng khác, các phương thức đa hình làm code dễ dàng hơn để hiểu và sử dụng, vì
lập trình viên không phải nhớ quá nhiều tên khác nhau.

Chia sẻ