Đóng gói chắc chắn là có thể không có thừa kế. Đóng gói là khái niệm ẩn dữ liệu từ các đối tượng bên ngoài mà không thể thao tác nó. Một ví dụ về đóng gói sẽ là các trường riêng của một đối tượng trong Java. Sau đó, bạn có thể sử dụng các phương thức công khai (chẳng hạn như getters và setters hoặc các phương thức tính toán khác) để thao tác dữ liệu chỉ khi cần thiết. Tuy nhiên,
Sự trừu tượng và đa hình có liên quan trực tiếp đến thừa kế.
Sự trừu tượng là khi bạn lấy đi các chi tiết triển khai của một đối tượng và tạo một lớp trừu tượng hoặc một giao diện (nói về Java). Điều này sẽ hoạt động như một hợp đồng cho những gì thực hiện hoặc kế thừa lớp học sẽ cần phải bao gồm trong việc thực hiện chi tiết. Lớp trừu tượng sẽ có chữ ký phương thức, nhưng không có thân thể; lớp kế thừa sẽ triển khai thực thể.
Đa hình là khả năng triển khai nội dung trừu tượng dưới các hình thức khác nhau. Ví dụ, nếu bạn có một lớp trừu tượng được gọi là Animal có chứa một phương thức speak(), bạn có thể tạo một lớp Dog kế thừa từ Animal và thực hiện nói() để in "woof", trong khi lớp Cat() sẽ thực hiện nói () để in "meow".
Lưu ý rằng nó phụ thuộc vào loại đa hình nào đang được kiểm tra.Bạn có thể, như đã nêu trong một câu trả lời khác, có phương thức đa hình tham số hàm/hàm, và như đã nói, có thể không có thừa kế.
Nguồn
2016-04-11 15:18:20
Vì vậy, trong đóng gói. Bạn đang nói rằng bạn có một lớp học trong đó bạn có tất cả các phương pháp và bạn muốn che giấu điều đó từ bên ngoài thế giới? đúng? thì phương pháp truy cập của bạn ở đâu? Nếu nó trong cùng một lớp học? thế thì không phải họ đang bỏ ẩn? –
Tôi có nghĩa là bạn muốn ẩn các thuộc tính của lớp hoặc cá thể từ thế giới bên ngoài, vì vậy bạn xây dựng các phương thức (setters, getters, vv) để tránh truy cập trực tiếp vào chúng. Đó là đóng gói. – manolonte
Phần "v.v" là cần thiết. Một số người tin rằng đóng gói chỉ là cung cấp getters và setters mà không nhận ra rằng nó thực sự là về việc kết hợp dữ liệu với nhau và hành vi liên quan của nó (tức là các phương thức sử dụng dữ liệu đó). [http://www.javaworld.com/article/2075271/core-java/encapsulation-is-not-information-hiding.html](http://www.javaworld.com/article/2075271/core-java/ encapsulation-is-not-information-hide.html) – Piovezan