Junior
Τι είναι η αφαίρεση στον προγραμματισμό;
sobes.tech AI
Απάντηση από AI
Η αφαιρετικότητα είναι ένας μηχανισμός που επιτρέπει το κρύψιμο λεπτομερειών υλοποίησης και την παροχή μιας γενικής αναπαράστασης του συστήματος ή των συστατικών του. Εστιάζει στο "τι" κάνει ένα αντικείμενο, και όχι στο "πώς" το κάνει.
Στην C#, η αφαιρετικότητα υλοποιείται μέσω:
- Αφηρημένων κλάσεων: Μπορούν να περιέχουν αφηρημένες μεθόδους (χωρίς υλοποίηση) και κανονικά μέλη. Δεν μπορεί να δημιουργηθεί ένα στιγμιότυπο μιας αφηρημένης κλάσης.
// Αφηρημένη κλάση με αφηρημένη μέθοδο public abstract class Shape { public abstract double GetArea(); // Αφηρημένη μέθοδος public string Name { get; set; } public void DisplayInfo() // Κανονική μέθοδος { Console.WriteLine($"Σχήμα: {Name}"); } } - Διεπαφές: Ορίζουν ένα συμβόλαιο που πρέπει να υλοποιήσει μια κλάση. Περιέχουν μόνο δηλώσεις μεθόδων, ιδιοτήτων, γεγονότων και δείκτες (μέχρι C# 8), ή μπορούν να περιέχουν προεπιλεγμένη υλοποίηση (από C# 8 και μετά).
// Διεπαφή public interface IDrawable { void Draw(); // Μέθοδος χωρίς υλοποίηση }
Αρχές της αφαιρετικότητας:
- Ενθυλάκωση: Συνένωση δεδομένων και μεθόδων που λειτουργούν με αυτά σε ένα ενιαίο μπλοκ. Προάγει το κρύψιμο της εσωτερικής δομής.
- Κληρονομικότητα: Επιτρέπει τη δημιουργία νέων κλάσεων βασισμένων σε υπάρχουσες, κληρονομώντας τις ιδιότητες και τις μεθόδους τους, και προσθέτοντας ή επαναπροσδιορίζοντας λειτουργικότητα.
Εφαρμογή της αφαιρετικότητας:
- Απλοποίηση πολύπλοκων συστημάτων.
- Αύξηση της ευελιξίας του κώδικα.
- Βελτίωση της συντηρησιμότητας.
- Δημιουργία επαναχρησιμοποιήσιμων συστατικών.