Bài tập về tính kế thừa trong java năm 2024
Giả sử rằng chúng ta có một lớp
1(côn trùng tiếng Anh) Lớp này chứa hai phương thức: 1.
2(từ tiếng Anh di chuyển) và 2.
3(từ tiếng Anh tấn công)
Bây giờ bạn muốn định nghĩa một lớp
4(con ong tiếng Anh), là một trong các loại
1, nhưng có cách triển khai khác nhau
3và
2. Điều này có thể được thực hiện bằng cách sử dụng tính kế thừa:
Sơ đồ phân cấp lớp khá đơn giản: Kết quả thực hiện:
"Fly" được gõ hai lần nên phương thức này
2được gọi hai lần. Nhưng nó chỉ nên được gọi một lần. Vấn đề là do
9. Phương thức này
0gọi một phương thức
2lớp
1. Khi một lớp con gọi
3, nó cũng gọi phương thức được ghi đè
2. Để khắc phục sự cố chúng ta có thể:
Thiết kế kế thừa này không tốt vì lớp con phụ thuộc vào chi tiết triển khai của siêu lớp của nó. Nếu lớp cha thay đổi, lớp con sẽ không hoạt động chính xác. 2. Thành phầnBạn có thể sử dụng thành phần thay vì kế thừa. Hãy xem xét một giải pháp sử dụng nó. Chức năng này
3được trừu tượng hóa như một giao diện.
Các kiểu tấn công khác nhau có thể được xác định bằng cách triển khai giao diện Tấn công.
Vì chức năng tấn công là bên ngoài nên lớp
1không còn chứa nó nữa.
Class
4(từ English Bee), loại này
1có thể tấn công như thế nào.
Sơ đồ lớp:
Kết quả thực hiện:
0 3. Khi nào nên sử dụng những phương pháp này?2 điểm sau đây có thể giúp bạn quyết định giữa kế thừa và thành phần:
Vì vậy, tính kế thừa và thành phần có những ứng dụng riêng và cần hiểu rõ giá trị của chúng. Liên kết: |