Lớp trừu tượng và interface trong C#
Lớp trừu tượng và interface trong C#
Lớp trừu tượng và interface trong C# giúp gì cho việc chạy chương trình? Hãy cùng với R2S chúng tôi tìm hiểu cách làm việc với lớp trừu tượng (abstract class) và giao diện (interface) sao cho hiệu quả nhất nhé!
Lớp trừu tượng và interface trong C# là gì?
Trước khi đến với các cú pháp và các trường hợp sử dụng lớp trừu tượng (abstract class) và giao diện (interface), hãy cùng với chúng tôi tìm hiểu thật chi tiết về 2 khái niệm này nhé.
Lớp trừu tượng (abstract class) trong C# là gì?
Lớp trừu tượng là một lớp được khai báo với từ khoá abstract và có thể chứa phương thức trừu tượng bên trong (phương thức trừu tượng là phương thức không có phần thân và kết thúc bằng dấu chấm hỏi).
Lớp trừu tượng thường được sử dụng khi định nghĩa lớp có một hoặc một vài phương thức mà không thể cài đặt được xử lý cho chúng. Những phương thức này sẽ được khai báo là trừu tượng. Một mục đích khác là tạo ra một lớp không cho phép tạo đối tượng của nó.
Giao diện (Interface) trong C# là gì?
Interface được sử dụng với hai mục đích. Một là hỗ trợ đa kế thừa. Hai là tạo ra một ‘hợp đồng’ trong viết code giữa các thành viên trong một nhóm lập trình hoặc giữa các nhóm khác nhau. Nghĩa là tất cả thành viên phải tuân thủ những quy định được khai báo trong interface.
Hướng dẫn tạo interface trong Visual Studio – Lớp trừu tượng và interface trong C#
Để tạo interface trong Visual Studio, bạn cần thực hiện một số bước như sau:
- Bước 1: Chuột phải vào project hoặc namespace
- Bước 2: Chọn Add
- Bước 3: Chọn Class
- Bước 4: Chọn Interface
- Bước 5: Nhập tên
- Bước 6: Chọn Add
Sau khi tạo lớp trừu tượng và interface trong C# thành công
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication
{
interface IMotor
{
}
}
Ví dụ khai báo 2 phương thức nhập và hiển thị trong IMotor
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication
{
interface IMotor
{
//Hai phương thức chỉ có phần khai báo
//không có phần thân hàm
void Nhap();
void HienThi();
}
}
Hướng dẫn cài đặt interface trong C#
Một lớp cài đặt interface phải triển khai (implement) xử lý cho tất cả các phương thức đã khai báo trong interface đó.
Ví dụ, nếu tạo lớp Motor cài đặt IMotor, Motor phải triển khai tất cả các phương thức đã khai báo trong IMotor.
Ví dụ tạo lớp Motor
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication
{
class Motor:IMotor
{
}
}
Hướng dẫn sử dụng chức năng phát sinh code trong Visual Studio
Kết quả sau khi sử dụng chức năng phát sinh code
namespace ConsoleApplication
{
class Motor:IMotor
{
public void Nhap()
{
throw new NotImplementedException();
}
public void HienThi()
{
throw new NotImplementedException();
}
}
}
Bài tập thực hành về Lớp trừu tượng và interface trong C#
Công ty Yamaha Việt Nam là một công ty chuyên sản xuất xe máy với nhiều model khác nhau như Sirius, Exciter và cung cấp cho thị trường Việt Nam. Công ty đang có nhu cầu phát triển một phần mềm quản lý hệ thống phân phối các loại xe này. Bạn là một thành viên trong nhóm phát triển phần mềm và bạn được giao nhiệm vụ thực hiện các công việc sau:
- Tạo một interface có tên là IMotor chứa các phương thức.
void InputInfo();
void DisplayInfo();
- Tạo lớp MyMotor cài đặt IMotor chứa có các thuộc tính sau
public string code; //Tối thiểu 4 ký tự và không trùng
public string name; //Tối thiểu 6 ký tự
public int capacity; //Capacity >= 50
public string type; //Xe số hoặc xe ga
- Tạo lớp Exciterkế thừa từ lớp MyMotor, sao cho trong lớp Exciterbổ sung thêm thuộc tính warranty (thời gian bảo hành) có kiểu int và giá trị >= 1 (đơn vị năm)
- Tạo lớp Sirius thừa kế từ lớp MyMotor. Trong lớp Sirius, bổ sung thuộc tính color có kiểu string (màu xe) và giá trị của nó có thể là xanh, vàng, trắng.
- Tạo lớp YamahaExecutor để cho phép người dùng lựa chọn chức năng.
Nhập thông tin xe exciter (enter: iei)
Nhập thông tin xe sirius (enter: isi)
Hiển thị thông tin xe exciter (enter: sei)
Hiển thị thông tin xe sirius (enter: ssi)
Tìm kiếm xe exciter (enter: se)
Tìm kiếm xe sirius (enter: ss)
Thoát chương trình (enter: ea)
Lựa chọn của bạn:
Kết luận
Lớp trừu tượng và interface là hai khái niệm quan trọng trong lập trình hướng đối tượng trong C#. Interface và lớp trừu tượng thường được sử dụng để triển khai tính trừu tượng, giúp mã nguồn dễ dàng quản lý và bảo trì. Chính vì thế, người học ngôn ngữ này nhất định phải biết cách làm việc với 2 thành phần này nhé!
Bài viết gốc được đăng tại: giasutinhoc.vn