Trừu tượng C#
Các lớp và phương thức trừu tượng
Trừu tượng hóa dữ liệu là quá trình ẩn một số chi tiết nhất định và chỉ hiển thị thông tin cần thiết cho người dùng.
Sự trừu tượng hóa có thể đạt được bằng các lớp hoặc giao diện trừu tượng (bạn sẽ tìm hiểu thêm về điều này trong chương tiếp theo).
Từ khóa abstract
được sử dụng cho các lớp và phương thức:
- Lớp trừu tượng: là lớp bị hạn chế, không thể sử dụng để tạo đối tượng (để truy cập nó phải được kế thừa từ lớp khác).
- Phương thức trừu tượng: chỉ có thể được sử dụng trong một lớp trừu tượng và nó không có phần thân. Phần thân được cung cấp bởi lớp dẫn xuất (được kế thừa từ).
Một lớp trừu tượng có thể có cả phương thức trừu tượng và phương thức thông thường:
abstract class Animal { public abstract void animalSound(); public void sleep() { Console.WriteLine("Zzz"); } }
Từ ví dụ trên, không thể tạo một đối tượng của lớp Animal:
Animal myObj = new Animal(); // Will generate an error (Cannot create an instance of the abstract class or interface 'Animal')
Để truy cập lớp trừu tượng, nó phải được kế thừa từ lớp khác. Hãy chuyển đổi lớp Động vật mà chúng ta đã sử dụng trong chương Đa hình thành một lớp trừu tượng.
Hãy nhớ trong chương Kế thừa rằng chúng ta sử dụng ký hiệu :
để kế thừa từ một lớp và chúng ta sử dụng từ khóa override
để ghi đè phương thức của lớp cơ sở.
Ví dụ
// Abstract class abstract class Animal { // Abstract method (does not have a body) public abstract void animalSound(); // Regular method public void sleep() { Console.WriteLine("Zzz"); } } // Derived class (inherit from Animal) class Pig : Animal { public override void animalSound() { // The body of animalSound() is provided here Console.WriteLine("The pig says: wee wee"); } } class Program { static void Main(string[] args) { Pig myPig = new Pig(); // Create a Pig object myPig.animalSound(); // Call the abstract method myPig.sleep(); // Call the regular method } }
Tại sao và khi nào nên sử dụng các lớp và phương thức trừu tượng?
Để đạt được bảo mật - hãy ẩn một số chi tiết nhất định và chỉ hiển thị các chi tiết quan trọng của một đối tượng.
Lưu ý: Tính trừu tượng cũng có thể đạt được bằng Giao diện mà bạn sẽ tìm hiểu thêm trong chương tiếp theo.