1. Cá voi và bò
Đây là một sự thật thú vị về động vật học: một con bò gần với một con cá voi hơn là, chẳng hạn, với một con hà mã. Hóa ra bò và cá voi là họ hàng tương đối gần.
Nhìn đây. Hãy cho bạn biết về tính đa hình — một công cụ rất mạnh khác của OOP . Nó có bốn tính năng.
2. Thừa kế không phải là thuốc chữa bách bệnh
Hãy tưởng tượng rằng bạn đã viết một Cow
lớp cho trò chơi. Nó có nhiều lĩnh vực và phương pháp. Các đối tượng của lớp này có thể làm nhiều việc khác nhau: đi bộ, ăn và ngủ. Bò cũng đeo một chiếc chuông kêu khi chúng đi bộ. Giả sử bạn đã triển khai mọi thứ trong lớp đến từng chi tiết nhỏ nhất.
Và sau đó, khách hàng của bạn đến và nói rằng cô ấy muốn phát hành một cấp độ trò chơi mới, trong đó tất cả các hành động diễn ra trên biển và nhân vật chính là một con cá voi.
Bạn bắt đầu thiết kế một Whale
lớp học và nhận ra rằng nó chỉ khác một chút so với Cow
lớp học. Logic của cả hai lớp rất giống nhau và bạn quyết định sử dụng tính kế thừa.
Lớp này Cow
là lý tưởng để đảm nhận vai trò của lớp cha: nó có tất cả các biến và phương thức cần thiết. Tất cả những gì chúng ta cần làm là cho cá voi khả năng bơi lội. Nhưng có một vấn đề: con cá voi của bạn có chân, sừng và chuông. Rốt cuộc, chức năng này được triển khai bên trong Cow
lớp. Có thể làm gì ở đây?
3. Ghi đè phương thức
Ghi đè phương thức đến để giải cứu chúng tôi. Nếu chúng ta kế thừa một phương thức không hoàn toàn làm những gì chúng ta muốn trong lớp mới, chúng ta có thể thay thế phương thức đó bằng một phương thức khác.
Làm thế nào điều này được thực hiện? Trong lớp con của chúng ta, chúng ta khai báo phương thức giống như phương thức của lớp cha mà chúng ta muốn ghi đè. Chúng tôi viết mã mới của chúng tôi trong đó. Và thế là xong — như thể phương thức cũ trong lớp cha đơn giản là không tồn tại.
Đây là cách nó hoạt động:
Mã số | Sự miêu tả |
---|---|
|
|
|
Mã này hiển thị văn bản sau trên màn hình:
|
|
Mã này hiển thị như sau trên màn hình:
|
Sau khi kế thừa Cow
lớp và ghi đè printName
phương thức, Whale
lớp thực sự chứa các dữ liệu và phương thức sau:
|
Chúng tôi không biết về bất kỳ phương pháp cũ. |
GO TO FULL VERSION