Logo vi.removalsclassifieds.com

Sự khác biệt giữa Thành phần và Kế thừa (Với Bảng)

Mục lục:

Anonim

Thông qua 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 tái sử dụng được gọi là mã có thể tái sử dụng trong lập trình. Trong các công ty công nghệ máy tính, khả năng tái sử dụng mã được coi là một chức năng năng suất quan trọng. Trong lập trình thực thể, có hai cách cơ bản để xác định các mối quan hệ này: kế thừa và cấu thành.

Thành phần so với Kế thừa

Sự khác biệt giữa thành phần và kế thừa là thành phần được sử dụng để xây dựng một lớp có mối quan hệ “has-a” chứ không phải là mối quan hệ “is-a” như trong kế thừa. Tính kế thừa cho phép các hàm thành viên thông qua một lớp này trở thành thuộc tính của lớp khác mà không cần phải viết mã chúng trực tiếp trong lớp.

Kế thừa lớp được khôi phục với thành phần bài viết. Thành phần được mô tả là việc sử dụng một thực thể này trong một thực thể khác. Vì thật đơn giản để tạo 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, 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. Tất cả những điều đó được gọi là thành phần.

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 một thực thể khác. Đây là một trong những cách hiệu quả nhất để thực thi sử dụng lại mã trong OOP. Một lớp mới có thể được hình thành bằng cách tạo quan hệ cha-con với các lớp hiện tại bằng cách sử dụng tính năng kế thừa. Các lớp có thể kế thừa các trạng thái và hành vi được sử dụng thường xuyên từ một số lớp khác do tính toán hướng đối tượng.

Bảng so sánh giữa thành phần và kế thừa

Các thông số so sánh

Thành phần

Di sản

Ý nghĩa Chúng tôi chỉ khai báo một kiểu 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 sử dụng (lớp cha) 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 nhiều lớp 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 mà 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. Kế thừa đòi hỏi phải sử dụng một lớp cha để kiểm tra một lớp con.
Tái sử dụng mã Ngay cả mã từ các lớp cuối 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 "đang xảy ra".

Thành phần là gì?

Thành phần là một hình thức tổng hợp trong đó quyền sở hữu được ngụ ý. Có sự phụ thuộc bởi vì một đối tượng này phụ thuộc vào một đối tượng khác. Hãy 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. Đối tượng trường học là bắt buộc để đối tượng lớp học tồn tại. Đối tượng lớp học bị hư hại nếu đối tượng trường học bị phá hủy. Kết quả là, hai mục này phụ thuộc lẫn nhau. Như vậy, nó thực sự là một thành phần. Nói một cách khác, chúng tôi gọi một thứ gì đó là bố cục nếu nó không thể tồn tại mà không có tổng thể.

Một kết nối khác giữa các lớp được cung cấp bởi OOP là thành phần, còn được gọi là quan hệ có-một. Nếu bằng cách nào đó các đặc điểm của một đối tượng này 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. Để tạo một lớp mới từ lớp cha, mỗi đối tượng của lớp phải được khai báo là thành viên của lớp hiện tại.

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 như một trường trong bất kỳ lớp nào thường xuyên. Trong thành phần, họ sử dụng một thực thể là một phần của một lớp. Thành phần mục, không giống như kế thừa lớp, được mô tả liên tục tại thời điểm chạy bởi các thực thể có kết nối với các đối tượng khác.

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 tồn tại từ trước này được gọi là lớp cha, lớp cha hoặc lớp nền tảng. Lớp mới được gọi là lớp con, lớp con hoặc lớp dẫn xuất. Do kế thừa, người tạo thậm chí không phải viết mã ngay từ đầu. Anh ta có thể sử dụng kế thừa để sử dụng lại các thuộc tính và phương thức của một ý tưởng dẫn xuất trong lớp mới. Kết quả là, kế thừa cải thiện việc sử dụng lại mã. Kế thừa có thể là đơn cấp, đa cấp, phân cấp, Đa và Lai về bản chất.

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 với một số mã chúng ta cần, chúng ta có thể trích xuất lớp mới của mình từ lớp hiện tại. Chúng tôi có thể sử dụng lại các thuộc tính và phương thức của lớp hiện tại thay vì tự viết chúng. Một lớp con kế thừa hầu hết các đại diện của lớp cha của nó. Các trình xây dựng không phải là người tham gia, vì vậy chúng không được truyền cho các lớp con, nhưng hàm Object () {[mã gốc]} của lớp cha có thể được gọi từ lớp con.

Sự khác biệt chính giữa thành phần và kế thừa

Sự kết luận

Vì các lớp phức tạp dễ xây dựng hơn bằng cách sử dụng các lớp được viết trước đó, được thiết kế tốt, nên đôi khi bạn sẽ muốn sử dụng một đối tượng làm trường trong một lớp khác. Đó là nơi xuất hiện khả năng thành phần. Vì tính kế thừa cho phép bạn sử dụng lại mã bằng cách mở rộng một lớp mà không tốn nhiều công sức, nên nó là một công cụ hữu ích để tạo mối quan hệ giữa các lớp.

Nói chung, bố cục được ưa thích hơn vì nó cho phép bạn sử dụng một đối tượng mà không làm mất dữ liệu bên trong của nó, đây là lúc bố cục có ích. Trong khi kế thừa có những hạn chế của nó, thành phần đối tượng đặt ra các vấn đề hiệu suất tương tự về sự hình thành và phá hủy đối tượng.

Sự khác biệt giữa Thành phần và Kế thừa (Với Bảng)