Junior
Μιλήστε για τα παραδείγματα και τις αρχές του αντικειμενοστραφούς προγραμματισμού.
sobes.tech AI
Απάντηση από AI
Παραδείγματα αντικειμενοστραφούς προγραμματισμού:
- Εν encapsulation: Απόκρυψη δεδομένων και μεθόδων εντός μιας κλάσης, παροχή πρόσβασης μέσω διεπαφής.
- Κληρονομικότητα: Δημιουργία νέων κλάσεων (υποκλάσεων) βασισμένων σε υπάρχουσες (υπερκλάσεις), κληρονομώντας τις ιδιότητες και τις μεθόδους τους.
- Πολυμορφισμός: Δυνατότητα χρήσης αντικειμένων διαφορετικών κλάσεων μέσω μιας κοινής διεπαφής, εκτελώντας συγκεκριμένη συμπεριφορά για κάθε κλάση.
Αρχές αντικειμενοστραφούς προγραμματισμού (SOLID):
- Αρχή Μοναδικής Ευθύνης (SRP): Κάθε κλάση πρέπει να έχει μια μοναδική ευθύνη.
- Αρχή Ανοιχτού/Κλειστού (OCP): Οι κλάσεις πρέπει να είναι ανοιχτές για επέκταση, αλλά κλειστές για αλλαγή.
- Αρχή Υποκατάστασης Liskov (LSP): Τα αντικείμενα της βασικής κλάσης μπορούν να αντικατασταθούν από αντικείμενα της παραγόμενης κλάσης χωρίς να διαταραχθεί η ορθότητα του προγράμματος.
- Αρχή Διαχωρισμού Διεπαφών (ISP): Οι πελάτες δεν πρέπει να εξαρτώνται από διεπαφές που δεν χρησιμοποιούν.
- Αρχή Αντιστροφής Εξαρτήσεων (DIP): Τα ανώτερα επίπεδα modules δεν πρέπει να εξαρτώνται από τα κατώτερα επίπεδα modules· και τα δύο πρέπει να εξαρτώνται από αφαιρέσεις. Οι αφαιρέσεις δεν πρέπει να εξαρτώνται από λεπτομέρειες, αλλά οι λεπτομέρειες από τις αφαιρέσεις.
Παράδειγμα εν encapsulation και κληρονομικότητας:
// Βασική κλάση
public class Animal
{
public string Name { get; set; }
public Animal(string name)
{
Name = name;
}
public virtual void MakeSound()
{
Console.WriteLine("Κάποιος γενικός ήχος");
}
}
// Υποκλάση
public class Dog : Animal
{
public Dog(string name) : base(name)
{
}
// Υπερκαλύπτει τη μέθοδο της βασικής κλάσης
public override void MakeSound()
{
Console.WriteLine("Γαβ!");
}
}
Παράδειγμα πολυμορφισμού:
Animal myAnimal = new Dog("Buddy");
myAnimal.MakeSound(); // Θα εμφανίσει "Γαβ!"