ABSTRACT CLASS C# LÀ GÌ

     

Abstract class và Interface là hai tư tưởng cơ bạn dạng trong lập trình phía đối tượng, tuy vậy trong C++ thì bài toán phân biệt abstract class cùng interface không dễ dàng và đơn giản như những ngôn từ khác. Cùng mày mò trong nội dung bài viết sau nhé.

Bạn đang xem: Abstract class c# là gì

Abstract class là gì?

Abstract class là một trong class không tồn tại thông tin về nội dung thực hiện và buộc phải cái subclass (class con) buộc phải định nghĩa các phương thức sống lớp abstract. Với lớp abstract, bạn cũng có thể công khai mặt tiền của object tuy vậy vẫn giấu đi những tiến trình thiết lập ở phía sau. Ví dụ với lớp string, chúng ta chỉ việc gọi thủ tục toUpperCase() để phát triển thành chuỗi hay thành chuỗi in hoa nhưng mà không cần suy xét phương thức kia được thiết lập như nào. Abstract class giúp họ đạt được tính đa hình dịp Runtime, tức là cùng một class có thể cho ra nhiều thay đổi thể mà biến hóa thể đó chưa phải được có mang ở lớp abstract cơ mà được tư tưởng ở lớp nhỏ của nó. Bài toán call hàm đối tượng người tiêu dùng của lớp dẫn xuất trải qua con trỏ của lớp đại lý (lớp abstract) vẫn được đưa ra quyết định lúc Runtime. Chúng ta cần gọi được nhiều hình vào Compile với đa hình vào Runtime ở bài viết này nhé.

Ví dụ về việc cài đặt và áp dụng một lớp abstract vào C++.

*

Kết quả sau thời điểm chạy chương trình.

*

Giải thích:

Trong C++ họ không tất cả từ khóa abstract để compiler phát âm rằng đấy là một lớp abstract mà họ phải khai báo một hàm ảo vào lớp đó nhằm lớp bé (lớp kế thừa) ghi đè(overriding) lại cách tiến hành đó. Ở code bên trên class Computer là một lớp abstract được khai báo cùng với hàm ảo(virtual function) là hàm Model. Ở lớp con Lenovo ghi đè lại phương thức mã sản phẩm ở lớp Computer. Vào hàm main họ khai báo con trỏ của lớp Computer trỏ vào vùng lưu giữ của lớp bé và gọi hàm model thì hôm nay hàm mã sản phẩm được ghi đè sinh hoạt lớp con được gọi. Giống như con trỏ của lớp abstract trỏ vào vùng ghi nhớ của lớp Dell và gọi hàm mã sản phẩm ra thì hàm model của lớp Dell sẽ được ghi đè. Còn nếu như không khai báo hàm model ở lớp Computer là hàm ảo thì trình biên dịch sẽ hotline hàm model tại lớp cơ sở. Demo xem tất cả ra tác dụng như bên dưới không nhé.

*

Interface là gì?

Trong C++ việc khai báo một interface bao gồm nghĩa là chúng ta khai báo với class với hàm thuần ảo và một cách thức hủy ảo (virtual destructor). Tới đây chúng ta tìm hiểu một ít về hàm thuần ảo trong C++ nhé. Hàm thuần ảo được khai báo cùng với cú pháp như sau.

Xem thêm: Đề Kiểm Tra Thực Hành Tin Học 12 Bài Tập Và Thực Hành 9, Tổng Hợp Các Bài Tập Và Thực Hành Môn Tin Học 12

virtual () = 0;

Ví dụ:

*

Ở trên đây tôi khai báo lớp IShape (khai báo class cùng với chữ "I" trước tên class để tấn công dấu cho tất cả những người đọc code biết rằng đó là một interface, đó là một chuẩn coding trong C++) bao gồm một cách làm thuần ảo là thủ tục tinnhDienTich(). để ý chỉ có hàm được ghi lại với từ bỏ khóa virtualthì mới được gán bằng 0. Chúng ta có thể hiểu hàm tinnhDienTich()có thể dùng làm tính diện tích cho hình chữ nhật, hình tròn, hình vuông,... Bởi vậy nếu chúng ta tạo một class Rectangle thừa kế class IShape và có mang lại cách làm tinnhDienTich()để tính diện tích hình chữ nhật thì vẫn thu được đa hình vào Runtime giống như như abstract class.

*

Có thể đọc Interface là một phiên bản mô tả hành động hoặc khả năng của một class cơ mà không gửi ra cách thực hiện cụ thể của class đó như vậy nào.

Vậy bao giờ dùng abstract class, lúc nào dùng interface?

*

Tới đây chắn chắn sẽ có không ít bạn vướng mắc abstract class khác nuốm quái như thế nào interface. Bắt đầu đầu lúc tiếp cận với hai tư tưởng này tôi cũng như các bạn không biết bao giờ dùng abstract class bao giờ dùng interface. Trả sử họ có một lớp abstract Xecó ở trong tính bộ động cơ và thủ tục khởi đụng và tắt máy. Xe pháo máy, xe cộ ô tô, xe pháo tải,... đều sở hữu chung thủ tục và trực thuộc tính của lớp Xe.Vậy có thể hiểu abstract class như thể một bạn dạng thiết kế thông thường cho tất cả các class, nó thay mặt cho mối quan hệ "IS-A"(Ô đánh là Xe).

Interface giống hệt như một phiên bản hợp đồng vậy, bất cứ lớp như thế nào triên khai một interface kia thì phải đồng ý với phiên bản thiết kế nhưng mà interface đó đưa ra. Lấy ví dụ xe bus hoàn toàn có thể chở khách hàng còn xe pháo tải gồm hàng. Vấn đề chở khách giỏi chở hàng là 1 trong phương thức không bắt buộc so với lớp xe buộc phải ta chế tạo ra interface ChoKhach với ChoHang nhằm lớp XeBus và XeTai hoàn toàn có thể implement nó. Vậy họ cần interface khi chúng ta cần hỗ trợ các phương thức bổ sung cho một class mà đầy đủ phương thức này sẽ không bắt buộc so với class đó, nó đại diện cho mối quan hệ "LIKE-A"(Xe bus hoàn toàn có thể chở khách).

Xem thêm: Vẽ Tranh Bịt Mắt Bắt Dê - Ẩn Ý Trong Tranh “Bịt Mắt Bắt Dê“

Lời kết

Qua nội dung bài viết này tôi sẽ hướng dẫn các bạn cách thiết đặt abstract class cùng interface vào C++ cũng tương tự biết khi nào nên áp dụng chúng. Tuy cách thiết đặt có không giống so với các ngôn ngữ bậc cao sau đây như Java giỏi C# tuy thế về thực chất thì vẫn không cầm cố đổi.