👨👩👧👦 Αντικειμενοστραφής «Οικογένεια»: Κλάσεις - Πρόγονοι, Κλάσεις - Απόγονοι
Όταν αναπτύσσουμε ένα πρόγραμμα που περιλαμβάνει κληρονομικότητα, μπορούμε να οργανώσουμε τις κλάσεις ιεραρχικά. Οι κλάσεις-πρόγονοι περιέχουν τις κοινές ιδιότητες, ενώ οι κλάσεις-απόγονοι κληρονομούν αυτές τις ιδιότητες και προσθέτουν τις δικές τους.
Κληρονομικότητα
🌼 Παράδειγμα: Αποστολή λουλουδιών (Ιεραρχία Κλάσεων)
Στην ιεραρχία της Αποστολής Λουλουδιών, η κλάση Επαγγελματίας περιέχει τις κοινές ιδιότητες και μεθόδους που κληρονομούν οι κλάσεις Ανθοπώλης, Ανθοδέτης, και Ταχυμεταφορέας.
Διάγραμμα Κληρονομικότητας:
Κλάση Επαγγελματίας
Κάθε υποκλάση, όπως ο Ανθοπώλης και ο Ταχυμεταφορέας, προσθέτει επιπλέον ιδιότητες πέρα από αυτές που κληρονομεί από την κλάση Επαγγελματίας.
🎨 Παράδειγμα: Σχεδιασμός Εικόνων με Γεωμετρικά Σχήματα
Στην εφαρμογή σχεδιασμού εικόνων που αναφέραμε νωρίτερα, μπορούμε να χρησιμοποιήσουμε την έννοια της κληρονομικότητας για να οργανώσουμε τα γεωμετρικά σχήματα. Αντί να φτιάχνουμε ξεχωριστές κλάσεις για κάθε σχήμα, μπορούμε να ορίσουμε μία υπερκλάση που θα περιέχει τις κοινές ιδιότητες όλων των σχημάτων και οι υποκλάσεις θα κληρονομούν αυτά τα κοινά στοιχεία.
🛠️ Ορισμός Υπερκλάσης και Υποκλάσεων
Η υπερκλάση θα ονομαστεί Γεωμετρικό Σχήμα και θα περιέχει τις εξής ιδιότητες:
- Σημείο X
- Σημείο Y
- Χρώμα
Επίσης, θα περιέχει κοινές μεθόδους όπως:
- ΥπολογισμόςΕμβαδού()
- ΑλλαγήΧρώματος()
Κάθε σχήμα, όπως Τρίγωνο, Παραλληλόγραμμο και Κύκλος, θα κληρονομεί αυτές τις ιδιότητες, αλλά θα προσθέτει και τις δικές του εξειδικευμένες ιδιότητες:
- Το Τρίγωνο έχει Ύψος και Βάση.
- Το Παραλληλόγραμμο έχει Ύψος και Πλάτος.
- Ο Κύκλος έχει την Ακτίνα ως μοναδική του ιδιότητα.
📊 Διάγραμμα Κληρονομικότητας
Γεωμετρικό Σχήμα | Κοινές Ιδιότητες | Κοινές Μέθοδοι |
---|---|---|
Σημείο X, Σημείο Y, Χρώμα | ΥπολογισμόςΕμβαδού(), ΑλλαγήΧρώματος() |
Τρίγωνο: Ύψος, Βάση
Παραλληλόγραμμο: Ύψος, Πλάτος
Κύκλος: Ακτίνα
🤔 Σημείο Προσοχής
Αν και οι υποκλάσεις κληρονομούν τη μέθοδο ΥπολογισμόςΕμβαδού() από την υπερκλάση Γεωμετρικό Σχήμα, ο τρόπος υπολογισμού του εμβαδού κάθε σχήματος είναι διαφορετικός για το κάθε σχήμα. Αυτό θα αναλύσουμε αναλυτικότερα σε επόμενη ενότητα.
Η οργάνωση της εφαρμογής με βάση την κληρονομικότητα κάνει το πρόγραμμα πιο ευέλικτο και επεκτάσιμο, ενώ οι κοινές μέθοδοι και ιδιότητες εξασφαλίζουν λιγότερη επανάληψη κώδικα.
Κλάση | Ιδιότητες | Μέθοδοι |
---|---|---|
Γεωμετρικό Σχήμα | Σημείο X, Σημείο Y | ΥπολογισμόςΕμβαδού(), ΑλλαγήΧρώματος() |
Τρίγωνο | Υψος, Βάση | ΥπολογισμόςΕμβαδού() |
Παραλληλόγραμμο | Υψος, Πλάτος | ΥπολογισμόςΕμβαδού() |
Κύκλος | Ακτίνα | ΥπολογισμόςΕμβαδού() |
Έτσι, όλες οι κλάσεις γεωμετρικών σχημάτων μοιράζονται κοινές μεθόδους, αλλά κάθε μία έχει τις δικές της εξειδικευμένες ιδιότητες.
🚗 Δραστηριότητα: Δεν μπορούμε να ξεφύγουμε από την κληρονομικότητα!
Ξετάστε τις παρακάτω φράσεις και αναρωτηθείτε αν έχουν νόημα βάσει της κληρονομικότητας:
- 🚗 Το αυτοκίνητο είναι ένα μέσο μεταφοράς.
- 🚍 Το λεωφορείο είναι ένα μέσο μεταφοράς.
- 🚘 Το αυτοκίνητο είναι ένα λεωφορείο.
- 👨💼 Ο υπάλληλος είναι ένα πρόσωπο.
- 🏦 Ο πελάτης είναι ένα πρόσωπο.
- 💳 Ο πελάτης είναι μία πιστωτική κάρτα.
- 🏦 Ο τρεχούμενος λογαριασμός είναι ένα είδος τραπεζικού λογαριασμού.
💡 Συμπέρασμα: Η κληρονομικότητα μας βοηθά να οργανώσουμε ιεραρχικά αντικείμενα, αποδίδοντας κοινά χαρακτηριστικά στις κλάσεις-απόγονους.
Ο Ευκλείδης λειτουργεί μέσω τεχνητής νοημοσύνης