Sobes.tech
Junior

Czym jest interfejs w C#?

sobes.tech AI

Odpowiedź od AI

Interfejs w C# to kontrakt, który definiuje zestaw członków (metody, właściwości, zdarzenia, indeksatory), ale nie zawiera ich implementacji. Klasy i struktury mogą implementować jeden lub więcej interfejsów, zobowiązując się do dostarczenia implementacji wszystkich członków interfejsu.

Kluczowe cechy:

  • Pozwala osiągnąć polimorfizm.
  • Definiuje zachowanie, a nie stan.
  • Może zawierać tylko deklaracje członków bez modyfikatorów dostępu (domyślnie public).
  • Nie może być tworzony bezpośrednio (nie można go zainicjować).
  • Obsługuje wielokrotne dziedziczenie (jedna klasa może implementować wiele interfejsów).
  • Wprowadzono interfejsy domyślne od .NET Core 3.0+, które pozwalają na dostarczanie implementacji członków.

Przykład:

// Definicja interfejsu
public interface ICustomer
{
    string GetFullName(); // Deklaracja metody
    int CustomerId { get; } // Deklaracja właściwości
}

// Klasa implementująca interfejs
public class CompanyCustomer : ICustomer
{
    public int CustomerId { get; set; }
    public string CompanyName { get; set; }
    public string ContactPerson { get; set; }

    public string GetFullName()
    {
        return $"{CompanyName} ({ContactPerson})";
    }
}