Interface Trong C# Là Gì

  -  

Abstract class với Interface là nhị khái niệm cơ bản trong thiết kế hướng đối tượng người sử dụng, tuy vậy vào C++ thì vấn đề khác nhau abstract class với interface ko đơn giản dễ dàng như các ngữ điệu không giống. Cùng khám phá trong nội dung bài viết sau nhé.

Bạn đang xem: Interface trong c# là gì

Abstract class là gì?

Abstract class là 1 class không tồn tại thông tin về nội dung tiến hành và bắt buộc mẫu subclass (class con) nên định nghĩa các thủ tục làm việc lớp abstract. Với lớp abstract, bạn có thể công khai phương diện tiền giấy object tuy nhiên vẫn giấu đi các quá trình setup ở phía đằng sau. lấy một ví dụ cùng với lớp string, chúng ta chỉ cần call cách làm toUpperCase() nhằm đổi thay chuỗi thường xuyên thành chuỗi in hoa nhưng mà không buộc phải quan tâm mang lại cách tiến hành đó được cài đặt nhỏng như thế nào. Abstract class giúp bọn họ giành được tính đa hình lúc Runtime, Có nghĩa là cùng một class hoàn toàn có thể tạo ra nhiều trở nên thể nhưng đổi thay thể đó không phải được quan niệm sống lớp abstract mà lại được có mang nghỉ ngơi lớp nhỏ của chính nó. Việc Gọi hàm đối tượng người dùng của lớp dẫn xuất thông qua bé trỏ của lớp đại lý (lớp abstract) sẽ được ra quyết định cơ hội Runtime. Các bạn cần phát âm được nhiều hình vào Compile với đa hình trong Runtime làm việc bài viết này nhé.

Ví dụ về vấn đề cài đặt và sử dụng một lớp abstract trong C++.

*

Kết trái sau thời điểm chạy công tác.

*

Giải thích:

Trong C++ bọn họ không có từ khóa abstract để compiler hiểu rõ rằng đấy là một tấm abstract mà lại họ bắt buộc khai báo một hàm ảo vào lớp kia để lớp nhỏ (lớp kế thừa) ghi đè(overriding) lại cách làm kia. Tại code bên trên class Computer là một trong lớp abstract được khai báo cùng với hàm ảo(virtual function) là hàm Model. Ở lớp nhỏ Lenovo ghi đtrằn lại cách tiến hành Model ở lớp Computer. Trong hàm main chúng ta knhì báo trong trỏ của lớp Computer trỏ vào vùng ghi nhớ của lớp bé cùng gọi hàm Model thì lúc này hàm Model được ghi đtrần nghỉ ngơi lớp con được điện thoại tư vấn. Tương từ con trỏ của lớp abstract trỏ vào vùng nhớ của lớp Dell và Call hàm Model ra thì hàm Model của lớp Dell sẽ được ghi đè. Nếu ko knhị báo hàm Model sinh sống lớp Computer là hàm ảo thì trình biên dịch đang điện thoại tư vấn hàm Model trên lớp đại lý. Thử coi bao gồm ra tác dụng nlỗi bên dưới không nhé.

*

Interface là gì?

Trong C++ Việc knhì báo một interface Tức là họ knhì báo cùng với class cùng với hàm thuần ảo cùng một cách tiến hành diệt ảo (virtual destructor). Tới phía trên bọn họ mày mò một ít về hàm thuần ảo vào C++ nhé. Hàm thuần ảo được knhị báo cùng với cú pháp nhỏng sau.

Xem thêm: Những Quán Cafe Phố Cổ Hà Nội Cổ Chan Chứa, Top 11 Café Đẹp Nhất Tại Phố Cổ Hà Nội

virtual () = 0;

Ví dụ:

*

Ở đây tôi knhị báo lớp IShape (knhị báo class cùng với chữ "I" trước thương hiệu class nhằm lưu lại cho những người phát âm code biết rằng đây là một interface, đấy là một chuẩn coding trong C++) gồm một thủ tục thuần ảo là cách thức tinnhDienTich(). Lưu ý chỉ bao gồm hàm được ghi lại với từ khóa virtualthì mới có thể được gán bằng 0. Chúng ta hoàn toàn có thể hiểu hàm tinnhDienTich()hoàn toàn có thể dùng làm tính diện tích S cho hình chữ nhật, hình tròn, hình vuông vắn,... bởi thế trường hợp chúng ta tạo thành một class Rectangle kế thừa class IShape và tư tưởng lại cách tiến hành tinnhDienTich()để tính diện tích hình chữ nhật thì đã chiếm được nhiều hình vào Runtime tương tự như như abstract class.

*

Có thể gọi Interface là một trong những bạn dạng biểu thị hành động hoặc kĩ năng của một class cơ mà ko chỉ dẫn bí quyết thực hiện ví dụ của class đó thế nào.

Vậy khi nào dùng abstract class, khi nào dùng interface?

*

Tới phía trên chắc hẳn đã có tương đối nhiều chúng ta vướng mắc abstract class khác nuốm quái làm sao interface. Mới đầu khi tiếp cận cùng với hai khái niệm này tôi tương tự như các bạn trù trừ bao giờ cần sử dụng abstract class bao giờ sử dụng interface. Giả sử chúng ta tất cả một tấm abstract Xecó ở trong tính hộp động cơ và cách thức khởi hễ và tắt đồ vật. Xe thiết bị, xe cộ xe hơi, xe cộ sở hữu,... đều có chung cách thức cùng trực thuộc tính của lớp Xe.Vậy hoàn toàn có thể đọc abstract class nhỏng là một phiên bản xây đắp chung mang đến tất cả các class, nó đại diện thay mặt mang đến quan hệ "IS-A"(Ô sơn là Xe).

Interface y như một phiên bản vừa lòng đồng vậy, bất kì lớp làm sao triên knhì một interface kia thì nên gật đầu cùng với bạn dạng thiết kế mà lại interface kia đưa ra. lấy một ví dụ xe bus rất có thể chlàm việc khách còn xe pháo cài đặt gồm sản phẩm. Việc chsinh hoạt khách xuất xắc chnghỉ ngơi mặt hàng là một cách làm ko buộc phải so với lớp xe cộ đề xuất ta tạo nên interface ChoKhach cùng ChoHang để lớp XeBus cùng XeTai có thể implement nó. Vậy bọn họ nên interface lúc bọn họ buộc phải cung ứng những cách tiến hành bổ sung cho 1 class mà lại những cách thức này sẽ không yêu cầu đối với class đó, nó thay mặt đại diện mang đến quan hệ "LIKE-A"(Xe bus có thể chở khách).

Xem thêm: Bán Tôm Tích Ở Sài Gòn Siêu To, Khổng Lồ Tại Kim Đông Hy, 【8/2021】Tôm Tích

Lời kết

Qua bài viết này tôi vẫn giải đáp chúng ta biện pháp setup abstract class với interface vào C++ cũng giống như biết lúc nào đề nghị sử dụng chúng. Tuy giải pháp thiết lập có không giống đối với những ngôn từ bậc cao sau đây nhỏng Java tốt C# nhưng mà về bản chất thì vẫn ko thay đổi.