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

.NET có hỗ trợ đ...

Câu trả lời

Trong .NET, đa kế thừa không được hỗ trợ trực tiếp cho các lớp (classes), nhưng có thể được thực hiện thông qua interfaces. Cụ thể:

1. Lý do không hỗ trợ đa kế thừa cho lớp

  • .NET tránh đa kế thừa cho lớp vì nó có thể dẫn đến các vấn đề phức tạp như Diamond Problem (vấn đề kim cương), khi mà một lớp con kế thừa từ hai lớp cha có cùng một thành viên hoặc phương thức, gây khó khăn trong việc xác định phương thức nào sẽ được sử dụng.
  • Việc này giúp .NET đơn giản hóa cấu trúc kế thừa và dễ bảo trì hơn.

2. Giải pháp thay thế: Đa kế thừa với Interfaces

  • Trong .NET, bạn có thể kế thừa nhiều interfaces. Các interface chỉ định nghĩa các phương thức, thuộc tính, sự kiện mà không cung cấp bất kỳ logic thực thi nào.
  • Lớp có thể triển khai nhiều interface, nhờ đó đạt được mục tiêu tương tự như đa kế thừa.

Ví dụ:

csharp Copy
public interface IInterfaceA
{
    void MethodA();
}

public interface IInterfaceB
{
    void MethodB();
}

public class MyClass : IInterfaceA, IInterfaceB
{
    public void MethodA()
    {
        Console.WriteLine("MethodA Implementation");
    }

    pub...
senior

senior

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

senior

Làm thế nào để giải quyết lỗi Circular Reference?

expert

Lập trình theo Interface có nghĩa là gì?

junior

Trong lập trình OOP, tính đóng gói là gì?

Bình luận

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

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