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

expert

Trong lập trình OOP. một class chiếm bao nhiêu bộ nhớ? Tại sao?

middle

Làm thế nào bạn có thể ngăn chặn lớp học của bạn được kế thừa thêm?

junior

Tính OOP, tính đa hình là gì?

Bình luận

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

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