Cả hai tìm cách bắt chước các vật phẩm trong thế giới thực và giúp các nhà phát triển viết mã bao gồm thế giới quan nơi họ tạo mã dễ dàng hơn.
Mã hóa hướng đối tượng có bốn ý tưởng cơ bản: kế thừa, trừu tượng hóa, đa hình và hạn chế. Như đã nói trước đây, mỗi khái niệm có thể được coi là nền tảng của bất kỳ ngôn ngữ đương đại nào.
Các nội dung chính
- Kế thừa và Đa hình đều là những khái niệm trong lập trình hướng đối tượng.
- Tính kế thừa là khả năng một lớp kế thừa các thuộc tính và phương thức từ một lớp khác. Đồng thời, Đa hình cho phép các đối tượng thuộc các lớp khác nhau được coi như thuộc về cùng một lớp.
- Kế thừa là một cách để tạo ra một hệ thống phân cấp các lớp, trong khi Đa hình là một cách để làm cho mã linh hoạt và dễ thích nghi hơn.
Kế thừa vs Đa hình
Tính kế thừa cho phép tái sử dụng mã và có thể giúp tổ chức mã thành các hệ thống phân cấp hợp lý. Tính đa hình là khả năng các đối tượng thuộc các lớp khác nhau chia sẻ chức năng chung thông qua kế thừa và giao diện. Nó có thể đạt được theo hai cách: thời gian biên dịch và thời gian chạy.

Kế thừa là một quá trình truyền theo đó một danh mục mới được tạo ra có được các đặc điểm của một nhóm có thể nhận dạng như vậy. Nó thúc đẩy khái niệm về khả năng tái tạo mã và rút ngắn độ phức tạp của mã thông qua điện toán hướng đối tượng.
Đơn truyền, đa cấp, nhiều dòng, cha truyền con lai, phụ hệ là những biểu hiện phổ biến của thừa kế.
Đa hình là khả năng hoàn thành một công việc dưới nhiều hình thức hoặc phương pháp. Nó được sử dụng để mô tả các chức năng hoặc kỹ thuật.
Tính đa hình cho phép thực thể chọn phiên bản của thao tác để thực hiện cả khi biên dịch và chạy. Đa hình được phân thành hai loại: biến thiên thời gian biên dịch cũng như đa hình thời gian chạy.
Bảng so sánh
Các thông số so sánh | di sản | Tính đa hình |
---|---|---|
Cơ bản | Kế thừa cơ bản là quá trình xây dựng một danh mục mới bằng cách sử dụng các đặc tả của lớp cũ. | Tính đa hình có lợi khi là cầu nối giữa các dạng khác nhau. |
Thực hiện | Thừa kế được chia thành các loại khác nhau. | Về chức năng/phương pháp, tính không đồng nhất được sử dụng. |
Sử dụng | Để thúc đẩy khái niệm mô đun hóa trong OOP và rút ngắn mã. | Cho phép một thực thể chọn bước lặp lại của thao tác sẽ kích hoạt tại thời điểm biên dịch và chạy. |
Các hình thức | Kế thừa đơn, đa, đa cấp, v.v., đều có thể thực hiện được. | Các biến thể di truyền có thể được biên dịch cũng như thời gian chạy. |
Ví dụ | Vì 'bàn' là 'gỗ cứng', nên loại 'bàn' có thể có đặc điểm của phân lớp 'gỗ cứng'. | Chức năng 'đặt màu' trong danh mục 'bàn' cũng có thể được gọi khi xây dựng và tốc độ hoạt động. |
Thừa kế là gì?
Kế thừa đã nổi lên như một tính năng chính của OOP hỗ trợ khả năng mở rộng. Khả năng sử dụng lại có lẽ có thể được mô tả là khả năng xây dựng một lớp đặc biệt bằng cách tái chế các đặc điểm của chỉ một cơ sở dữ liệu đối tượng.
Trong thừa kế, dường như có một đơn vị cấu trúc mà các lớp trừu tượng kế thừa. Bất cứ khi nào một lớp mượn một lớp khác, mọi thuộc tính của lớp nền tảng sẽ trở thành thành viên của một trong hai cấu trúc dữ liệu.
Trong trường hợp này, biểu thức chính quy trợ năng chỉ định phương thức tham chiếu đến thành phần trong cấu trúc dữ liệu cho lớp dẫn xuất. Trừ khi không có chiến lược truy cập cụ thể nào được đưa ra, nó được coi là riêng tư theo lựa chọn.
Nếu các phương thức trừu tượng nghiêm ngặt thì trung tâm điều khiển sẽ được công khai theo quy ước trong C++. Lớp con trong Java mượn danh mục khác trong khi sử dụng thuật ngữ mở rộng.
Một biến thể không thể truy cập các thuộc tính của lớp cơ sở được đánh dấu là riêng tư. Một nguyên mẫu có thể, giống như trong Java, truy xuất các thuộc tính bí mật của siêu lớp và Java cung cấp giải pháp nếu lớp con cần lấy hoặc khởi tạo các phần đó.
Danh mục con có thể sử dụng thuật ngữ “siêu” để chỉ các thể hiện của lớp cha liền kề nó. Nó chỉ có thể tiếp cận các thành phần của siêu lớp gần nhất.
Đa hình là gì?
Tính đa hình được định nghĩa là 'một thao tác, nhiều dạng'. Nó được thực hiện ở cả cấp độ biên dịch và cấp độ theo sự kiện.
Quá tải được sử dụng để đạt được tính linh hoạt trong thời gian biên dịch, trong khi ghi đè được sử dụng để đạt được sự biến đổi di truyền trong thời gian chạy.
Tính đa hình cho phép vật phẩm chọn “phiên bản nào của thao tác sẽ thực thi khi nào” tại thời điểm đó cũng như thời gian biên dịch cũng như thời gian chạy.
Quá tải bất biến đề cập đến việc gọi một cơ chế trong một lớp nhiều lần với nhiều loại dữ liệu và đối số khác nhau, mặc dù phương thức được bão hòa nên có cùng một cơ chế gọi lại.
Trong hầu hết thời gian, các thuật toán mở rộng là các trình tạo lớp. Khái niệm ghi đè chỉ áp dụng cho các thao tác phân loại tương ứng với khái niệm dòng dõi.
Trong C++, kỹ thuật cần ghi đè được gắn thẻ từ “ảo” trong mô hình quan hệ và được sao chép trong nguyên mẫu.
Quá tải đòi hỏi phải viết mã hoặc có thể là phương thức của lớp nhiều lần với các tham số khác nhau nhưng các biến thể hiện giống nhau.
Nó ngụ ý rằng các tham số được cung cấp cho hoạt động có thể khác nhau và các giá trị được tính toán được cung cấp cho tập lệnh tại thời điểm chạy sẽ xác định biến thể chương trình nào sẽ được thực thi. Tính trung bình, hoạt động quá tải nhất là chức năng danh mục Đối tượng.
Sự khác biệt chính giữa Kế thừa và Đa hình
- Kế thừa trao quyền cho một biến tiềm ẩn để sử dụng các thành phần và phương thức của loại cơ sở. Sơ đồ lớp không được chỉ định các thành viên hoặc phương thức đó. Tuy nhiên, đa hình cho phép một đối tượng chọn phiên bản nào của thủ tục để thực thi ở cả thời gian xây dựng và thời gian chạy.
- Các lớp hỗ trợ kế thừa. Mặt khác, đa hình được sử dụng trên các kỹ thuật và biến.
- Di chúc đơn, nhiều cấp, nhiều cấp, thứ bậc và kết hợp là nhiều loại thừa kế. Mặt khác, đa hình được đặc trưng là quá tải và ghi đè.
- Kế thừa đang thiết lập một lớp kế thừa các tính năng của nó từ một đối tượng đã thiết lập. Mặt khác, tính đa hình là chức năng có thể được triển khai theo nhiều cách khác nhau.
- Hầu hết trong trường hợp kế thừa, loại xe đạp có thể bắt nguồn từ loại đại diện cho xe hai bánh, có thể là một phân ngành ô tô. Trong tính đa hình, danh mục xe đạp có thể chứa một phương thức có tên là set color thay đổi màu của xe đạp tùy thuộc vào tên của cả hai màu bạn đã cung cấp.