Page 126 - Em Học Python
P. 126
Ví dụ, em thử tưởng tượng một phần mềm cực lớn, như là một chương trình xử lý
văn bản hay một game 3D chẳng hạn. Đa số mọi người sẽ gần như không thể hiểu nổi hết
cả một chương trình đồ sộ như thế, vì đơn giản là có quá là nhiều code. Nhưng nếu ta chia
nhỏ chương trình khổng lồ này ra thành nhiều phần nhỏ, mỗi phần lúc này sẽ dễ hiểu hơn
phải không — tất nhiên là với điều kiện em phải hiểu ngôn ngữ đó rồi.
Khi phải viết một chương trình lớn như thế, chia nhỏ nó ra đồng thời cũng giúp em
phân chia được công việc ra cho các lập trình viên khác. Những chương trình hết sức phức
tạp em đang dùng hàng ngày (như trình duyệt web chẳng hạn) được rất nhiều người, nhiều
nhóm ở nhiều nơi trên thế giới bỏ công sức ra cùng nhau viết đấy.
Giờ thử hình dung rằng em muốn mở rộng
thêm các lớp vừa viết lúc trước ( Animals, Mammals, và
Giraffes), nhưng lại quá là bận đi, em sẽ cần bạn bè
giúp đỡ. Ta có thể chia nhỏ việc code ra để người này
viết cho lớp Animals, người kia viết cho lớp Mammals,
người khác nữa thì viết cho lớp Giraffes.
THỪA KẾ HÀM
Nếu tinh ý một chút, em có thể sẽ nhận ra rằng trong số những người giúp em trên
kia, bạn may mắn nhất là bạn được viết code cho lớp Giraffes, vì bạn đó có thể dùng tất cả
các hàm được viết bởi ai đó cho các lớp Animals và Mammals. Lớp Giraffes kế thừa ⟨inherit⟩
tất cả hàm của lớp Mammals, và lớp Mammals lại kế thừa tất cả các hàm của lớp Animals. Nói
cách khác, khi tạo ra một đối tượng thuộc lớp Giraffes, đối tượng đó có thể sử dụng tất cả
hàm của lớp Giraffes cũng như tất cả
hàm của các lớp cha Animals và Mammals.
Cùng cách diễn đạt như thế, nếu tạo ra
một đối tượng của lớp Mammals, đối tượng
đó có thể dùng tất cả hàm của lớp Mammals
cũng như tất cả hàm của lớp cha Animals.
100 Chương 8