Sự khác biệt giữa Tóm tắt Class và giao diện trong C # Sự khác biệt giữa

Anonim

Một lớp trừu tượng trông giống như một giao diện, nhưng khái niệm này là một chút khó hiểu đối với những người mới bắt đầu của OOP. Về mặt khái niệm, một lớp trừu tượng trông giống như một giao diện, tất nhiên, không thực hiện bất kỳ, tuy nhiên chúng có chia sẻ công bằng về sự khác biệt. Mặc dù một lớp trừu tượng có thể được thực hiện một phần hoặc hoàn toàn, một giao diện phải được thực hiện hoàn toàn. Vâng, sự khác biệt đáng chú ý nhất giữa hai là một lớp trừu tượng có thể có thực hiện mặc định, trong khi giao diện chỉ là định nghĩa của các phương thức chỉ chứa các khai báo thành viên. Hãy thảo luận các khía cạnh lý thuyết của cả hai chi tiết.

Lớp Tóm tắt là gì?

Một lớp trừu tượng là một loại đặc biệt của lớp học hoạt động như một cơ sở của các lớp khác và không thể được instantiated. Logic thực hiện của một lớp trừu tượng được cung cấp bởi các lớp học có nguồn gốc của nó. Để thực hiện một lớp trừu tượng, các "trừu tượng" sửa đổi được sử dụng có nghĩa là một số thiếu thực hiện cần phải được thực hiện trong lớp học có nguồn gốc từ nó. Nó chứa cả thành viên trừu tượng và không trừu tượng. Một lớp trừu tượng được dự định cung cấp các chức năng cơ bản có thể được chia sẻ và bị ghi đè bởi nhiều lớp có nguồn gốc. Nó rất hữu ích để tránh bất kỳ loại sao chép mã. Họ trông rất giống giao diện nhưng với chức năng bổ sung.

Giao diện là gì?

Một giao diện, mặt khác, không phải là một lớp chỉ chứa chữ ký của chức năng. Đó là một mẫu mà không thực hiện. Nói theo khái niệm, nó chỉ là định nghĩa của các phương pháp chỉ chứa tuyên bố của các thành viên. Đó là một vỏ trống rỗng mà không chứa việc thực hiện các thành viên của nó. Nó giống như một lớp cơ sở trừu tượng chỉ chứa các thành viên trừu tượng như phương pháp, sự kiện, lập chỉ mục, tài sản, vv Nó không thể được instantiated trực tiếp và các thành viên của nó có thể được thực hiện bởi bất kỳ lớp học. Ngoài ra, nhiều giao diện có thể được thực hiện bởi một lớp, tuy nhiên, một lớp học chỉ có thể kế thừa một lớp duy nhất.

Lớp trừu tượng so với giao diện: Sự khác biệt giữa lớp trừu tượng và giao diện trong C #

Đa kế thừa

  1. - Một lớp học chỉ có thể sử dụng một lớp trừu tượng, do đó thừa kế nhiều không được hỗ trợ. Mặt khác, giao diện có thể hỗ trợ đa thừa kế, có nghĩa là một lớp có thể kế thừa bất kỳ số thừa kế nào.
  2. Tóm tắt Lớp và Giao diện trong C # - Lớp trừu tượng là một loại đặc biệt của lớp có thể chứa định nghĩa mà không thực hiện. Logic thực hiện được cung cấp bởi các lớp học có nguồn gốc của nó. Nó có thể có các phương pháp trừu tượng cũng như phi trừu tượng.Mặt khác, một giao diện chỉ là một mẫu mà không thể làm bất cứ điều gì. Về mặt kỹ thuật, nó chỉ là một vỏ trống rỗng. Thực hiện - Một lớp trừu tượng có thể chứa cả định nghĩa và cách thực hiện. Đó là một lớp không đầy đủ mà không thể được instantiated. Một giao diện chỉ có thể có chữ ký của các chức năng mà không có bất kỳ mã.
  3. Access Modifiers
  4. - Một lớp trừu tượng có thể có một số sửa đổi truy cập như subs, functions, properties, etc, trong khi một giao diện không được phép có các sửa đổi truy cập và tất cả các phương pháp phải được ngầm định là public. Tính đồng nhất - Một lớp trừu tượng được sử dụng để thực hiện cùng kiểu, hành vi và trạng thái, trong khi một giao diện được sử dụng cho các hiện thực chỉ chia sẻ các chữ ký phương pháp.
  5. Tuyên bố - Lớp trừu tượng hoạt động như một lớp cơ sở cho tất cả các lớp khác để nó có thể khai báo hoặc sử dụng bất kỳ biến nào trong khi một giao diện không được phép khai báo bất kỳ biến nào.
  6. Constructor Declaration - Mặc dù một lớp abstract có thể có khai báo constructor, một giao diện không thể có khai báo constructor.
  7. Core vs. Peripheral - Một lớp trừu tượng được sử dụng để định nghĩa nhận dạng cốt lõi của một lớp và có thể được sử dụng cho các đối tượng cùng kiểu dữ liệu. Mặt khác, giao diện được sử dụng để xác định khả năng ngoại vi của một lớp.
  8. Rigid vs. Supple - Một lớp trừu tượng có phần mềm dẻo hơn về mặt tính năng, ít nhất là từ quan điểm của nhà phát triển, trong khi một giao diện chặt chẽ hơn.
  9. Lớp trừu tượng so với giao diện: Biểu mẫu bảng Tầng trừu tượng

Giao diện

Lớp trừu tượng có thể có tất cả các sửa đổi truy cập để khai báo thành viên về các chức năng, tiểu mục và thuộc tính.

Một giao diện không được phép có các sửa đổi truy cập để khai báo thành viên của các chức năng, tiểu mục, thuộc tính … Tất cả các thành viên được giả định là công khai một cách công khai.

Một lớp chỉ có thể sử dụng một lớp trừu tượng nhất. Một lớp có thể kế thừa bất kỳ số giao diện nào.
Nhiều thừa kế không được hỗ trợ trong lớp trừu tượng. Một giao diện có thể hỗ trợ đa thừa kế.
Về mặt kỹ thuật, đó là một lớp mà có thể hoặc không thể chứa cả định nghĩa và cách thực hiện. Một giao diện chỉ có thể có chữ ký của chức năng vì vậy về cơ bản nó là một vỏ trống rỗng.
Một lớp trừu tượng có thể chứa các thành viên. consts, các phương pháp được xác định, và stubs phương pháp. Một giao diện chỉ có thể chứa các phương pháp và consts.
Nó xác định danh tính cốt lõi của một lớp và được sử dụng để mô tả các đối tượng cùng loại dữ liệu. Nó được sử dụng để mô tả các khả năng ngoại vi của một lớp.
Thành viên của một lớp trừu tượng không được tĩnh trừ khi đó là một Thành viên hoàn chỉnh. Thành viên của một giao diện không thể tĩnh.
Đó là lý tưởng cho việc triển khai cùng loại và hành vi thông thường. Tốt hơn nên sử dụng các giao diện nếu một số triển khai chỉ chia sẻ các chữ ký phương pháp.
Nó có thể có khai báo nhà xây dựng. Không thể khai khai nhà xây dựng.
Một lớp trừu tượng đã được xác định trước lĩnh vực và constrants. Các trường không thể được định nghĩa trong các giao diện.
Nó có thể có cả phương pháp trừu tượng và không trừu tượng. Nó chỉ có thể có các phương pháp trừu tượng.
Tóm tắt Khác biệt giữa lớp trừu tượng và giao diện là gì? Đây có lẽ là một trong những câu hỏi phổ biến nhất được yêu cầu trong bất kỳ cuộc phỏng vấn kỹ thuật nào. Bạn có thể tìm thấy rất nhiều thông tin về các lớp trừu tượng và các giao diện trong bất kỳ hướng dẫn C #, tuy nhiên, sự hiểu biết sự khác biệt giữa hai là phần khá khó khăn. Bạn có thể củng cố tất cả các thông tin bạn có thể tìm thấy và vẫn không thể có được đủ. Vâng, khái niệm cả hai đều là các thuật ngữ quan trọng nhất trong lập trình và cũng tương tự, tuy nhiên, chúng khác nhau rất nhiều về tính năng. Trong khi một lớp trừu tượng là một loại đặc biệt của lớp mà hoạt động như một cơ sở cho các lớp khác, một giao diện, mặt khác, chỉ là một vỏ trống rỗng và chỉ có các thành viên khai báo.