Junior
Vertel over de paradigma's en principes van objectgeoriënteerd programmeren.
sobes.tech AI
Antwoord van AI
Objectgeoriënteerde programmeerparadigma's:
- Incapsulatie: Het verbergen van gegevens en methoden binnen een klasse, met toegang via een interface.
- Erfelijkheid: Het creëren van nieuwe klassen (subklassen) gebaseerd op bestaande klassen (superklassen), waarbij eigenschappen en methoden worden geërfd.
- Polymorfisme: Het vermogen om objecten van verschillende klassen via een gemeenschappelijke interface te gebruiken en specifiek gedrag uit te voeren voor elke klasse.
Principes van OOP (SOLID):
- Single Responsibility Principle (SRP): Elke klasse moet één enkele verantwoordelijkheid hebben.
- Open/Closed Principle (OCP): Klassen moeten openstaan voor uitbreiding, maar gesloten zijn voor wijziging.
- Liskov Substitution Principle (LSP): Objecten van een basisklasse kunnen worden vervangen door objecten van een afgeleide klasse zonder de correctheid van het programma te schaden.
- Interface Segregation Principle (ISP): Klanten mogen niet afhankelijk zijn van interfaces die ze niet gebruiken.
- Dependency Inversion Principle (DIP): Hoog-niveau modules mogen niet afhankelijk zijn van laag-niveau modules; beide moeten afhankelijk zijn van abstracties. Abstracties mogen niet afhankelijk zijn van details; details moeten afhankelijk zijn van abstracties.
Voorbeeld van encapsulatie en erfelijkheid:
// Basisklasse
public class Animal
{
public string Name { get; set; }
public Animal(string name)
{
Name = name;
}
public virtual void MakeSound()
{
Console.WriteLine("Een algemeen geluid");
}
}
// Afgeleide klasse
public class Dog : Animal
{
public Dog(string name) : base(name)
{
}
// Override van de basisklasse-methode
public override void MakeSound()
{
Console.WriteLine("Woef!");
}
}
Voorbeeld van polymorfisme:
Animal myAnimal = new Dog("Buddy");
myAnimal.MakeSound(); // Drukt "Woef!" af