Sobes.tech
Junior

Beszéljen az objektumorientált programozás paradigmáiról és alapelveiről.

sobes.tech MI

Válasz az MI-től

Objektumorientált programozási paradigmák:

  1. Encapsuláció: Az adatok és módszerek elrejtése egy osztályon belül, hozzáférés biztosítása interfészen keresztül.
  2. Öröklődés: Új osztályok (származtatott osztályok) létrehozása meglévő osztályok (ősosztályok) alapján, örökölve azok tulajdonságait és módszereit.
  3. Polimorfizmus: Képesség különböző osztályok objektumait közös interfészen keresztül használni, és minden osztályra jellemző viselkedést végrehajtani.

Az OOP (SOLID) alapelvei:

  1. Egyetlen felelősség elve (SRP): Minden osztálynak egyetlen feladata legyen.
  2. Nyitott/zárt elv (OCP): Az osztályok nyitottak legyenek bővítésre, de zártak módosításra.
  3. Liskov helyettesítési elv (LSP): Az ősosztály objektumai helyettesíthetők a származtatott osztályok objektumaival anélkül, hogy a program helyessége sérülne.
  4. Interfész szétválasztás elve (ISP): A kliensek ne függjenek olyan interfészektől, amelyeket nem használnak.
  5. Függőségek fordított elve (DIP): A magas szintű modulok ne függjenek az alacsony szintű moduloktól; mindkettőnek az absztrakcióktól kell függnie. Az absztrakciók nem függenek a részletektől, a részletek az absztrakcióktól.

Példa inkapszulációra és öröklődésre:

// Alap osztály
public class Animal
{
    public string Name { get; set; }

    public Animal(string name)
    {
        Name = name;
    }

    public virtual void MakeSound()
    {
        Console.WriteLine("Nagy általános hang");
    }
}

// Származtatott osztály
public class Dog : Animal
{
    public Dog(string name) : base(name)
    {
    }

    // Felülírja az alap osztály metódusát
    public override void MakeSound()
    {
        Console.WriteLine("Vau!");
    }
}

Polimorfizmus példája:

Animal myAnimal = new Dog("Buddy");
myAnimal.MakeSound(); // Kiírja: "Vau!"