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:
- 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.
- Ö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.
- 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:
- Egyetlen felelősség elve (SRP): Minden osztálynak egyetlen feladata legyen.
- Nyitott/zárt elv (OCP): Az osztályok nyitottak legyenek bővítésre, de zártak módosításra.
- 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.
- Interfész szétválasztás elve (ISP): A kliensek ne függjenek olyan interfészektől, amelyeket nem használnak.
- 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!"