Câu hỏi phỏng vấn C#
Câu hỏi

Virtual Method trong C# là gì?

Câu trả lời

Trong C#, Virtual Method (Phương thức ảo) là một khái niệm quan trọng trong lập trình hướng đối tượng, cho phép một phương thức trong lớp cơ sở được ghi đè (override) trong một lớp dẫn xuất. Điều này cung cấp khả năng đa hình thời gian chạy (runtime polymorphism), cho phép các lớp con cung cấp các triển khai cụ thể cho phương thức được định nghĩa là ảo trong lớp cơ sở.

Đặc điểm của Virtual Method:

  • Ghi đè (Override): Để ghi đè một phương thức ảo trong lớp con, bạn sử dụng từ khóa override. Điều này cho biết rằng phương thức trong lớp con là một phiên bản mới của phương thức ảo từ lớp cơ sở.
  • Triển khai mặc định: Phương thức ảo có thể cung cấp một triển khai mặc định. Lớp con có thể chọn không ghi đè phương thức ảo và thay vào đó kế thừa triển khai từ lớp cơ sở.
  • Đa hình: Sử dụng phương thức ảo cho phép đa hình thời gian chạy, nơi một lớp con có thể được xử lý như một instance của lớp cơ sở, nhưng khi một phương thức ảo được gọi, phiên bản của lớp con (nếu có) sẽ được thực thi.

Ví dụ về Virtual Method:

csharp Copy
public class Animal
{
    public virtual void Speak()
    {
        Console.WriteLine("Một số âm thanh");
    }
}

public class Dog : Animal
{
    public override void Speak()
    {
        Console.WriteLine("Woof");
    }
}

public class Cat : Animal
{
    public override void Speak()
    {
        Console.WriteLine("Meow");
    }
}

Trong ví dụ trên, Speak là một phương thức ảo trong lớp Animal. Lớp DogCat ghi đè phương thức Speak để cung cấp triển khai cụ thể cho từng loại động vật.

Sử dụng Virtual Method:

  • Tính linh hoạt: Phương thức ảo cung cấp tính linh hoạt trong việc thiết kế lớp và phương thức, cho phép các lớp dẫn xuất tùy chỉnh hóa hoặc mở rộng hành vi của lớp cơ sở.
  • Tính đa hình: Phương thức ảo là một công cụ quan trọng cho tính đa hình, cho phép bạn viết mã linh hoạt hơn và dễ bảo trì hơn, nơi bạn có thể làm việc với các đối tượng của lớp cơ sở nhưng vẫn tận dụng được triển khai cụ thể của các lớp dẫn xuất.

Tóm lại, Virtual Method trong C# là một cơ chế mạnh mẽ cho phép đa hình và tùy chỉnh hóa hành vi của các lớp trong hệ thống kế thừa, làm cho mã nguồn linh hoạt và dễ mở rộng hơn.

middle

middle

Gợi ý câu hỏi phỏng vấn

middle

Preprocessor directives trong C# là gì?

middle

Tại sao bạn không thể chỉ định accessibility modifier cho các phương thức bên trong Interface trong C#?

junior

Sự khác biệt giữa câu lệnh continuebreak trong C# là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào