Sobes.tech
Intern

Τι είναι η κληρονομικότητα στον προγραμματισμό και ποιος είναι ο σκοπός της;

sobes.tech AI

Απάντηση από AI

Η κληρονομικότητα είναι ένας μηχανισμός του αντικειμενοστραφούς προγραμματισμού (OOP) που επιτρέπει σε μια κλάση (υποκλάση, παράγωγη) να κληρονομήσει ιδιότητες (attributes) και συμπεριφορές (μεθόδους) από μια άλλη κλάση (μητρική, βασική).

Χρησιμοποιείται για:

  • Επανάχρηση κώδικα: Οι μέθοδοι και τα attributes της βασικής κλάσης είναι διαθέσιμα στην παράγωγη, αποφεύγοντας την διπλοτυπία κώδικα.
  • Δημιουργία ιεραρχιών κλάσεων: Επιτρέπει το μοντελοποίηση σχέσεων "είναι ένα" (is-a) μεταξύ αντικειμένων. Για παράδειγμα, Σκύλος είναι Ζωικό.
  • Επέκταση λειτουργικότητας: Η υποκλάση μπορεί να προσθέσει δικά της attributes και μεθόδους ή να υπερκαλύψει (τροποποιήσει) τη συμπεριφορά που κληρονομεί.
  • Πολυμορφισμός: Μαζί με την δυναμική διανομή, η κληρονομικότητα επιτρέπει την επεξεργασία αντικειμένων διαφορετικών τύπων, αναφερόμενων στην βασική κλάση.

Παράδειγμα σε Python:

class Ζωικό:
    # Βασική κλάση
    def __init__(self, όνομα):
        self.όνομα = όνομα

    def κάνε_ήχο(self):
        pass # Κενή μέθοδος, θα υπερκαλυφθεί σε υποκλάσεις

class Σκύλος(Ζωικό):
    # Υποκλάση
    def __init__(self, όνομα, φυλή):
        super().__init__(όνομα) # Κλήση του κατασκευαστή της βασικής κλάσης
        self.φυλή = φυλή

    def κάνε_ήχο(self):
        # Υπερκαλύπτει τη μέθοδο
        print("Γαβ!")

# Χρήση
ο_σκύλος_μου = Σκύλος("Бобик", "Οβερνέ")
print(ο_σκύλος_μου.όνομα) # Κληρονομημένο attribute
ο_σκύλος_μου.κάνε_ήχο() # Υπερκαλυμμένη μέθοδος