Việc sử dụng các phiên bản trước để tạo phần mềm mới bằng cách sử dụng các khái niệm về khả năng sử dụng lại được gọi là mã có thể sử dụng lại trong lập trình.
Các nội dung chính
- Thành phần đang xây dựng các đối tượng phức tạp bằng cách kết hợp các đối tượng đơn giản hơn, trong khi tính kế thừa tạo ra các lớp mới từ các lớp hiện có.
- Thành phần cho phép linh hoạt hơn trong việc sửa đổi các đối tượng, trong khi tính kế thừa cung cấp cấu trúc phân cấp và cứng nhắc hơn.
- Thành phần được ưu tiên hơn tính kế thừa vì nó thúc đẩy việc tái sử dụng mã, giảm sự ghép nối và cho phép mức độ trừu tượng cao hơn.
Thành phần so với Kế thừa
Thành phần liên quan đến việc xây dựng các đối tượng phức tạp từ những đối tượng đơn giản hơn, dẫn đến mối quan hệ “có-một” giữa các lớp. Tính kế thừa cho phép một lớp kế thừa các thuộc tính và phương thức từ lớp khác, thiết lập mối quan hệ “là một” và thúc đẩy khả năng sử dụng lại mã.

Vì việc xây dựng các lớp phức tạp bằng cách sử dụng các lớp được thiết kế tốt, đã xuất bản trước đó làm thành phần là đơn giản, nên người ta luôn có thể sử dụng một đối tượng làm trường trong một lớp khác.
Trong OOP, kế thừa đề cập đến quá trình mà một thực thể có được các đặc điểm của thực thể khác. Đó là một trong những cách hiệu quả nhất để thực thi việc sử dụng lại mã trong OOP.
Bảng so sánh
Các thông số so sánh | Sáng tác | di sản |
---|---|---|
Tầm quan trọng | Chúng tôi chỉ khai báo một loại mà chúng tôi muốn sử dụng trong thành phần và nó có thể lưu trữ một số triển khai có thể thay đổi trong thời gian chạy. | Chúng tôi xác định lớp mà chúng tôi đang áp dụng (siêu lớp) trong kế thừa và nó không thể bị thay đổi khi thực thi. |
kết hợp lớp | Khả năng kết hợp chức năng từ các lớp riêng biệt được cung cấp thông qua thành phần. | Chúng tôi chỉ có thể mở rộng một lớp trong trường hợp này; nói cách khác, nhiều lớp không thể được mở rộng vì Java không cho phép đa kế thừa. |
Chức năng | Thành phần cho phép chúng tôi kiểm tra chức năng của các lớp chúng tôi đang sử dụng mà không phải lo lắng về việc chúng là lớp cha hay lớp con. | Tính kế thừa bắt buộc phải sử dụng lớp cha để kiểm tra lớp con. |
Sử dụng lại mã | Ngay cả mã từ các lớp cuối cùng cũng có thể được sử dụng lại nhờ thành phần. | Lớp cuối cùng không thể được mở rộng thông qua kế thừa. |
Mối quan hệ | Đó là một tình huống "có-một". | Đó là một tình huống "là-một". |
Thành phần là gì?
Một thành phần là một hình thức tổng hợp trong đó quyền sở hữu được ngụ ý. Có một sự phụ thuộc bởi vì một đối tượng phụ thuộc vào đối tượng khác. Xem xét các đối tượng sau: một đối tượng trường học và một đối tượng lớp học.
Nếu bằng cách nào đó, các đặc điểm của một đối tượng phải được kết hợp với các đặc điểm của đối tượng khác, thì mối quan hệ đòi hỏi phải có bố cục.
Thành phần được mô tả là việc sử dụng một đối tượng bên trong một đối tượng khác. Một thực thể có thể được sử dụng thường xuyên như một trường trong bất kỳ lớp nào. Trong thành phần, họ sử dụng một thực thể là một phần của lớp.

Thừa kế là gì?
Kế thừa là khi một lớp mới sử dụng các thuộc tính và phương thức của một lớp hiện có. Lớp có sẵn này được gọi là lớp cha, lớp cha hoặc lớp cơ sở.
Nếu chúng ta muốn xây dựng một lớp mới, nhưng dường như có một lớp chứa một số mã chúng ta cần, thì chúng ta có thể trích xuất lớp mới của mình từ lớp hiện tại.

Sự khác biệt chính giữa Thành phần và Kế thừa
- Ngay cả mã từ các lớp cuối cùng cũng có thể được sử dụng lại nhờ khả năng kết hợp, trong khi lớp cuối cùng không thể được mở rộng thông qua tính kế thừa.
- Thành phần là một tình huống “có-một”, trong khi Kế thừa là một tình huống “có-một”.