oop:introduction

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision Both sides next revision
oop:introduction [2015/01/20 13:15]
gthanos [Κατασκευαστές της Κλάσης (Class Constructors)]
oop:introduction [2015/01/20 13:50]
gthanos [Περιεχόμενα της Κλάσης]
Line 43: Line 43:
   - **Μεθόδους** (συναρτήσεις στην γλώσσα C)   - **Μεθόδους** (συναρτήσεις στην γλώσσα C)
  
 +==== Κληρονομικότητα ====
  
 +Στον πραγματικό κόσμο πολλά πράγματα μοιράζονται κοινά χαρακτηριστικά. Για παράδειγμα:​
 +  * Υπάρχουν επιμέρους τύποι ποδηλάτων,​ όπως mountain, street, bmx κλπ
 +  * Υπάρχουν επιμέρους τύποι αυτοκινήτων,​ sport, 4x4, sedan, coupe, supercars, luxury cars.
 +
 +Γενικά,​ μπορούμε να ορίσουμε κλάσεις που περιγράφουν γενικότερες έννοιες και στην συνέχεια να τις εξειδικεύσουμε περιγράφοντας έννοιες πιο ειδικές. Για παράδειγμα,​ για ένα τζιπ επιβατικό αυτοκίνητο μπορεί να οριστεί η παρακάτω ιεραρχία.
 +
 +//​**Αυτοκινούμενο όχημα** --> **Τετράτροχο αυτοκινούμενο όχημα** --> **Επιβατικό τετράτροχο αυτοκινούμενο όχημα** -> **Επιβατικό τετράτροχο αυτοκινούμενο όχημα για χρήση εκτός δρόμου (τζιπ)** --> **Επιβατικό τετράτροχο αυτοκινούμενο όχημα για χρήση εκτός δρόμου (τζιπ) - συγκεκριμένο μοντέλο **//.
 +
 +Με βάση την παραπάνω ιεραρχία,​ μπορούμε να ορίσουμε την αρχική κλάση του αυτοκινούμενου οχήματος,​ την οποία στη συνέχεια να εξειδικεύσουμε σε πιο ειδικές κλάσεις. Οι γλώσσες αντικειμενοστραφούς προγραμματισμού δίνουν την δυνατότητα να δημιουργηθούν ιεραρχίες κλάσεων (//​σχεδίων//​),​ όπου οι πιο ειδικές κλάσεις (**υποκλάσεις - __Sub Classes__**) κληρονομούν τα χαρακτηριστικά των **γονικών (__Super Classes__)** κλάσεων,​ τα οποία εξειδικεύουν περαιτέρω. ​
 +
 +| Στο διπλανή εικόνα παρουσιάζεται το παράδειγμα κληρονομικότητας της κλάσης του ποδηλάτου. Από την γενική κλάση του ποδηλάτου προκύπτουν δύο επιμέρους κλάσεις **α)** το ποδήλατο για δύο επιβάτες **β)** το ποδήλατο με ταχύτητες. | {{:​oop:​bicycle-hierarchy.png?​200 |}} |
  
  
  
oop/introduction.txt · Last modified: 2017/02/16 08:34 by gthanos