Κληρονομικότητα ΙωάννηςΓºΤσούλος ¾¼½ ½ Ηκατηγορία ÈÖ ÓÒ ΗκληρονομικότητααποτελείένααπόταβασικότεραχαρακτηριστικάτουαντικειμενοστραφούςπρογραμματισμούºΤαβασικάτηςστοιχείασε είναι ½ºΤαπεδίαπουχρειάζεταιναπεράσουνστηνκατηγορίαπουκληρονομείθα πρέπειναέχουνοριστείείτεως ÔÙÐ ανθέλουμεναπαραμείνουνδημόσιαµ είτεως ÔÖÓØغ Τα ÔÖÓØØπεδίαείναικαιαυτάιδιωτικάαλλάμπορεί ναταβλέπεικαιωςιδιωτικάκαιηαπόγονοςκατηγορίαº ¾ºΗκατηγορίαπουκληρονομείκαθορίζειαπόποιακατηγορίαθακληρονομήσει μετηνλέξη ÔÙÐ ÔÖÚÓÙ Ð όπου ÔÖÚÓÙ Ð ηκατηγορίααπότην οποία γίνεται η κληρονομικότηταº Ταπαραπάνωπαρουσιάζονταιστονπαρακάτωαλγόριθμο όπουυλοποιείταικαταρχήνηκατηγορία ÈÖ ÓÒγιατηνπεριγραφήπροσώπωνκαιστηνσυνέχειαηκατηγορία ËØÙÒØπουκληρονομείαπότην ÈÖ ÓÒº ½ ÒÐÙ Ó ØÖÑ ¾ ÒÐÙ Ø Ö Ò º Ù Ò ÒÑ Ô Ø Ð ÈÖ ÓÒ ß ÔÖÓØØ Ö ÒÑ Ð ØÒÑ ÔÙÐ ½¼ ÈÖ ÓÒ µ ½½ ÈÖ ÓÒ Ö Ò Ö Ð µ ½¾ ÓÒ Ø Ö ØÆÑ µ ½ ÓÒ Ø Ö ØÄ ØÒÑ µ ½ ÚÓ Ø Ð µ ½ ÈÖ ÓÒ µ ½ Ð ½ ½ ÈÖ ÓÒ ÈÖ ÓÒ µ ½
½ ß ¾¼ ÒÑÒÛ Ö ¾ ¾½ Ð ØÒÑÒÛ Ö ¾ ¾¾ Ø Ö Ô Ý ÒÑ µ ¾ Ø Ö Ô Ý Ð ØÒÑ µ ¾ Ð ¾ ¾ ÈÖ ÓÒ ÈÖ ÓÒ Ö Ò Ö Ð µ ¾ ß ¾ ÒÑÒÛ Ö Ø Ö Ð Ò Ò µ ½ ¾ Ð ØÒÑÒÛ Ö Ø Ö Ð Ò Ð µ ½ ¼ Ø Ö Ô Ý ÒÑ Ò µ ½ Ø Ö Ô Ý Ð ØÒÑ Ð µ ¾ Ð ÓÒ Ø Ö ÈÖ ÓÒ ØÆÑ µ ß ÖØÙÖÒ ÒÑ Ð ÓÒ Ø Ö ÈÖ ÓÒ ØÄ ØÒÑ µ ¼ ß ½ ÖØÙÖÒ Ð ØÒÑ ¾ Ð ÚÓ ÈÖ ÓÒ Ø Ð µ ß ÓÙØÒÑÒÑ Ø Ð ØÒÑÐ ØÒÑÒÐ Ð ¼ ÈÖ ÓÒ ÈÖ ÓÒ µ ½ ß ¾ ÓÙØ Ð Ø Ò ÔÖ ÓÒ Ø Ð µ ÐØ ÒÑ ÐØ Ð ØÒÑ Ð Ð ËØÙÒØ ÔÙÐ ÈÖ ÓÒ ß ¼ ÔÖÚØ ½ ÒØ Ñ Ø Ö ¾ ÔÙÐ ËØÙÒØ µ ËØÙÒØ Ö Ò Ö Ð ÒØ µ ¾
ÓÒ Ø ÒØ ØËÑ ØÖ µ ÚÓ Ø Ë Ñ Ø Ö ÒØ µ ÚÓ Ô Ö Ò Ø Ë Ø Ù Ò Ø µ ËØÙÒØ µ Ð ¼ ½ ¾ ËØÙÒØ ËØÙÒØ µ ß Ñ Ø Ö ¼ Ð ËØÙÒØ ËØÙÒØ Ö Ò Ö Ð ÒØ µ ÈÖ ÓÒ Ò Ð µ ß ¼ Ñ Ø Ö ½ Ð ¾ ÓÒ Ø ÒØ ËØÙÒØ ØËÑ ØÖ µ ß ÖØÙÖÒ Ñ Ø Ö Ð ÚÓ ËØÙÒØ Ø Ë Ñ Ø Ö ÒØ µ ß ¼ Ñ Ø Ö ½ Ð ¾ ÚÓ ËØÙÒØ Ô Ö Ò Ø Ë Ø Ù Ò Ø µ ß Ø Ð µ ÓÙØ ËÑ ØÖ Ñ ØÖÒÐ Ð ËØÙÒØ ËØÙÒØ µ ½¼¼ ß ½¼½ ÓÙØ Ð Ø Ø Ù Ò Ø ÒÐ ½¼¾ Ð ½¼ ½¼ ÒØ ÑÒ µ ½¼ ß ½¼ ÈÖ ÓÒ Ô½ÒÛ ÈÖ ÓÒ ÒÒ ÈÔÔ µ ½¼ ÈÖ ÓÒ Ô¾ÒÛ ÈÖ ÓÒ Ò Ó ÓÒÒÓÙ µ ½¼ ËØÙÒØ ½ÒÛ ËØÙÒØ ÅÖ ÑØÖÓÙ ½ µ ½¼ Ô½ Ø Ð µ ½½¼ Ô¾ Ø Ð µ
½½½ ½ Ø Ð µ ½½¾ ½ Ô Ö Ò Ø Ë Ø Ù Ò Ø µ ½½ ÐØ Ô½ ½½ ÐØ Ô¾ ½½ ÐØ ½ ½½ ÖØÙÖÒ ¼ ½½ Ð ¾ Πολλαπλή κληρονομικότητα Σεέναπεριορισμένοαριθμόπεριπτώσεωνχρειάζεταιμιακατηγορίανακληρονομήσει στοιχείααπόπαραπάνωαπόμιακατηγορίεςºγιαπαράδειγμασκεφτείτετηνπερίπτωση ενόςκαθηγητήº Μπορούμεναθεωρήσουμεπωςείναιταυτόχρονακαιάνθρωπος αλλάκαιυπάλληλοςº Τοσυγκεκριμένοθέμαπαρουσιάζεταιστοναλγόριθμοπου ακολουθείºπροσοχή Ανξεχάσουμετα ÔÙÐστηνκληρονομικότητα τότεόλα ταπεδίατηςκλάσηςπουκληρονομείταιθαπεράσουνσανιδιωτικάστηνεπόμενη καιπροφανώςδενθαείναιπροσβάσιμαº ½ ÒÐÙ Ó ØÖÑ ¾ ÒÐÙ Ø Ö Ò º Ù Ò ÒÑ Ô Ø Ð ÈÖ ÓÒ ß ÔÖÓØØ Ö ÒÑ Ð ØÒÑ ÔÙÐ ½¼ ½½ ÈÖ ÓÒ Ö Ò Ö Ð µ ½¾ ÓÒ Ø Ö ØÆÑ µ ½ ÓÒ Ø Ö ØÄ ØÒÑ µ ½ ÚÓ Ø Ð µ ½ ÈÖ ÓÒ µ ½ Ð ½ ½ ÈÖ ÓÒ ÈÖ ÓÒ Ö Ò Ö Ð µ ½ ß ¾¼ ÒÑÒÛ Ö Ø Ö Ð Ò Ò µ ½ ¾½ Ð ØÒÑÒÛ Ö Ø Ö Ð Ò Ð µ ½ ¾¾ Ø Ö Ô Ý ÒÑ Ò µ ¾ Ø Ö Ô Ý Ð ØÒÑ Ð µ ¾ Ð ¾ ¾ ÓÒ Ø Ö ÈÖ ÓÒ ØÆÑ µ ¾ ß
¾ ÖØÙÖÒ ÒÑ ¾ Ð ¼ ½ ÓÒ Ø Ö ÈÖ ÓÒ ØÄ ØÒÑ µ ¾ ß ÖØÙÖÒ Ð ØÒÑ Ð ÚÓ ÈÖ ÓÒ Ø Ð µ ß ÓÙØÒÑÒÑ Ø Ð ØÒÑÐ ØÒÑÒÐ ¼ Ð ½ ¾ ÈÖ ÓÒ ÈÖ ÓÒ µ ß ÓÙØ Ð Ø Ò ÔÖ ÓÒ Ø Ð µ ÐØ ÒÑ ÐØ Ð ØÒÑ Ð ¼ Ð ÑÔÐÓÝ ½ ß ¾ ÔÖÓØØ ÓÙÐ Ð Ö Ý Ö Ñ ÔÙÐ ÑÔÐÓÝ ÓÙÐ Ö µ ÓÙÐ Ø Ë Ð Ö Ý µ ÓÒ Ø Ö ØÑ µ ÚÓ Ø Ë Ð Ö Ý ÓÙÐ µ ¼ ÚÓ ØÑ Ö µ ½ ÑÔÐÓÝ µ ¾ Ð ÑÔÐÓÝ ÑÔÐÓÝ ÓÙÐ Ö µ ß Ð Ö Ý ÑÒÛ Ö Ø Ö Ð Ò µ ½ Ø Ö Ô Ý Ñ µ ¼ Ð ½ ¾ ÓÙÐ ÑÔÐÓÝ Ø Ë Ð Ö Ý µ ß
ÖØÙÖÒ Ð Ö Ý Ð ÓÒ Ø Ö ÑÔÐÓÝ ØÑ µ ß ÖØÙÖÒ Ñ ¼ Ð ½ ¾ ÚÓ ÑÔÐÓÝ Ø Ë Ð Ö Ý ÓÙÐ µ ß Ð Ö Ý Ð ÚÓ ÑÔÐÓÝ ØÑ Ö µ ß ÑÒÛ Ö Ø Ö Ð Ò µ ½ ¼ Ø Ö Ô Ý Ñ µ ½ Ð ¾ ÑÔÐÓÝ ÑÔÐÓÝ µ ß ÓÙØ Ð Ø ÑÔÐÓÝ ÛØ ÑÑÒÐ ÐØ Ñ Ð Ð ÌÖ ÔÙÐ ÈÖ ÓÒ ÔÙÐ ÑÔÐÓÝ ½¼¼ ß ½¼½ ÔÖÚØ ½¼¾ Ö ÓÓÐÒÑ ½¼ ÔÙÐ ½¼ ÌÖ Ö Ò Ö Ð ÓÙÐ Ö Ö ÒÑ µ ½¼ ÓÒ Ø Ö ØËÓÓÐÒÑ µ ½¼ ÚÓ ØËÓÓÐÒÑ Ö ÒÑ µ ½¼ ÌÖ µ ½¼ Ð ½¼ ½½¼ ÌÖ ÌÖ Ö Ò Ö Ð ÓÙÐ Ö Ö ÒÑ µ ½½½ ÈÖ ÓÒ Ò Ð µ ÑÔÐÓÝ µ ½½¾ ß ½½ ØËÓÓÐÒÑ ÒÑ µ ½½ Ð ½½ ½½ ÓÒ Ø Ö ÌÖ ØËÓÓÐÒÑ µ ½½ ß ½½ ÖØÙÖÒ ÓÓÐÒÑ ½½ Ð
½¾¼ ½¾½ ÚÓ ÌÖ ØËÓÓÐÒÑ Ö ÒÑ µ ½¾¾ ß ½¾ ÓÓÐÒÑÒÛ Ö Ø Ö Ð Ò ÒÑ µ ½ ½¾ Ø Ö Ô Ý ÓÓÐÒÑ ÒÑ µ ½¾ Ð ½¾ ½¾ ÌÖ ÌÖ µ ½¾ ß ½¾ ÓÙØ Ð Ø Ø Ö Ó Ó Ó Ð ÓÓÐÒÑÒÐ ½ ¼ ÐØ ÓÓÐÒÑ ½ ½ Ð ½ ¾ ½ ÒØ ÑÒ µ ½ ß ½ ÌÖ Ø½ÒÛ ÌÖ ÒÒ ÈÔÔ ½ ¾ ¼ ¼ º ¼ ¼½½¾ ÌÁÀÈÁÊ ½ ÓÙØ Ø Ð Ø½ ØÆÑ µø½ ØÄ ØÒÑ µø½ Ø Ë ½ ÐØ Ø½ ½ ÖØÙÖÒ ¼ ½ Ð Πολυμορφισμός Θεωρήστετοεπόμενοπαράδειγμακληρονομικότητας όπουηκατηγορία Ð κληρονομείταιαπότηνκατηγορία Ð º ½ ÒÐÙ Ó ØÖÑ ¾ Ù Ò ÒÑ Ô Ø Ð Ð ß ÔÖÓØØ ÒØ ÚÐÙ ÔÙÐ Ð ÒØ µ ½¼ ÚÓ Ø Ð µ ½½ Ð ½¾ ½ Ð Ð ÒØ µ ½ ß ½ ÚÐÙ ½ Ð ½ ½ ÚÓ Ð Ø Ð µ ½ ß
¾¼ ÓÙØ Ú Ð Ù ÚÐÙÒÐ ¾½ Ð ¾¾ ¾ Ð Ð ÔÙÐ Ð ¾ ß ¾ ÔÖÚØ ¾ ÒØ ÚÐÙ ÚÐÙ ¾ ÔÙÐ ¾ Ð ÒØ ÒØ µ ¾ ÚÓ Ø Ð µ ¼ Ð ½ ¾ Ð Ð ÒØ ÒØ µ Ð µ ß ÚÐÙ Ð ÚÓ Ð Ø Ð µ ß ¼ ÓÙØ Ú Ð Ù ÚÐÙÒÐ ½ Ð ¾ ÒØ ÑÒ µ ß Ð Ó½ÒÛ Ð ½ ¼ ¼ µ Ð Ó¾ÒÛ Ð ¾ ¼ ¼ ¼ ¼ µ Ó½ Ø Ð µ Ó¾ Ø Ð µ ÐØ Ó½ ¼ ÐØ Ó¾ ½ ÖØÙÖÒ ¼ ¾ Ð Οπως μπορούμε να παρατηρήσουμε όταν καλείταιημέθοδος ØÐ µ σε αντικείμενοτηςδεύτερηςκατηγορίαςπροτιμάταιναχρησιμοποιηθείημέθοδος ¹ ØÐ µτηςδεύτερηςκατηγορίαςαλλάόχιτηςπρώτηςºμπορούμεόμωςναχρησιμοποιήσουμετηνμέθοδοκαιτηςπρώτηςμετονακόλουθοκώδικα ½ ÚÓ Ð Ø Ð µ ¾ ß Ð Ø Ð µ ÓÙØ Ú Ð Ù ÚÐÙÒÐ Ð Ηκλήση Ð ØÐ µκαθοδηγείτονμεταγλωττιστήνακαλέσειτηνσυνάρτηση τηςκατηγορίας Ð Ωστόσομπορούμενααλλάξουμετηνμέθοδο ÑÒ µώστε
ναέχουμεαντικείμεναμόνον απότην κατηγορίατης Ð ταοποίανα αρχικοποιούνταιείτεστηνκατηγορία Ð είτεστηνκατηγορία Ð όπωςφαίνεταιστηνεπόμενησυνάρτηση ÑÒ µ ½ ¾ ÒØ ÑÒ µ ß Ð Ø Ð ÒØ ÓÖ ¼ µ ß ±¾¼µ Ø Ð ÒÛ Ð ¾ µ Ð Ø Ð ÒÛ Ð ¾ ½ µ ½¼ Ø Ð Ø Ð µ ½½ Ð ½¾ ÓÖ ¼ µ ÐØ Ø Ð ½ Ð ΟπωςβλέπουμεσεόλεςτιςπεριπτώσειςκαλείταιημέθοδοςτηςπρώτηςκατηγορίαςκαιποτέτηςδεύτερηςºΑυτόμπορείναλυθείσχετικάαπλάμετηνχρήση τωνυπερβατικών ÚÖØÙеμεθόδωνόπωςπαρουσιάζεταικαιστοεπόμενοπαράδειγμα τωνγεωμετρικώνσχημάτωνº ½ ÒÐÙ Ó ØÖÑ ¾ ÒÐÙ ÑØ º Ù Ò ÒÑ Ô Ø Ð ËÔ ß ÔÙÐ ÚÖØÙÐ ÓÙÐ Ö µ ÚÖØÙÐ ÓÙÐ Ô Ö Ñ Ø Ö µ ÚÓ Ø Ð µ ½¼ Ð ½½ ½¾ ÓÙÐ ËÔ Ö µ ½ ß ½ ÖØÙÖÒ ¼ º ¼ ½ Ð ½ ½ ÓÙÐ ËÔ Ô Ö Ñ Ø Ö µ ½ ß ½ ÖØÙÖÒ ¼ º ¼ ¾¼ Ð ¾½ ¾¾ ÚÓ ËÔ Ø Ð µ ¾ ß ¾ ÓÙØÖÖ µòð
¾ ÓÙØ ÈÖÑØÖ Ô Ö Ñ Ø Ö µòð ¾ Ð ¾ ¾ Ð Ö Ð ÔÙÐ ËÔ ¾ ß ¼ ÔÖÚØ ½ ÓÙРܼ ݼ Ö ¾ ÔÙÐ Ö Ð ÓÙÐ ÓÙÐ ÓÙРʵ ÚÖØÙÐ ÓÙÐ Ö µ ÚÖØÙÐ ÓÙÐ Ô Ö Ñ Ø Ö µ Ð Ö Ð Ö Ð ÓÙÐ ÓÙÐ ÓÙРʵ ß ¼ ܼ ½ ݼ ¾ ÖÊ Ð ÓÙÐ Ö Ð Ö µ ß ÖØÙÖÒ ÅÈÁ Ö Ö Ð ¼ ÓÙÐ Ö Ð Ô Ö Ñ Ø Ö µ ½ ß ¾ ÖØÙÖÒ ¾ ÅÈÁ Ö Ð Ð ËÕÙÖ ÔÙÐ ËÔ ß ÔÖÚØ ÓÙÐ ÔÙÐ ¼ ËÕÙÖ ÓÙÐ µ ½ ÚÖØÙÐ ÓÙÐ Ö µ ¾ ÚÖØÙÐ ÓÙÐ Ô Ö Ñ Ø Ö µ Ð ËÕÙÖ ËÕÙÖ ÓÙÐ µ ß Ð ¼ ÓÙÐ ËÕÙÖ Ö µ ½¼
½ ß ¾ ÖØÙÖÒ Ð ÓÙÐ ËÕÙÖ Ô Ö Ñ Ø Ö µ ß ÖØÙÖÒ Ð ¼ ÒØ ÑÒ µ ½ ß ¾ ËÔ ½ ¾ ½ÒÛ Ö Ð ½ ¼ ¼ ½ ¼ ¼ ½ ¼ µ ¾ÒÛ ËÕÙÖ ¾ ¼ µ ½ Ø Ð µ ¾ Ø Ð µ ÐØ ½ ÐØ ¾ Ð Σεαυτήντηνπερίπτωσητασχήματααρχικοποιήθηκανμετηνχρήσηδιαφορετικών συναρτήσεωνδημιουργίαςαπότιςκατηγορίεςπουκληρονομούνºγιαναδιασφαλιστείπωςθαχρησιμοποιηθούνοισωστέςμέθοδοι Ö µκαι ÔÖÑØÖ µέχουν δηλωθείως ÚÖØÙÐσεκάθεκατηγορίαºΑυτήηδυνατότητανααναφερόμαστεσε αντικείμεναμιαςκατηγορίαςαλλάναχρησιμοποιούμεμεθόδουςκαικώδικααπό κατηγορίεςαπογόνουςονομάζεταιπολυμορφισμόςº Ωστόσομπορούμενααλλάξουμεακόματηνδήλωσητηςκατηγορίας ËÔώστενατηνκάνουμε ÔÙÖ ÚÖØÙÐ κατηγορία μιαςκαιοιπρώτεςυλοποιήσειςτων Ö µκαι ÔÖÑØÖ µεκείδεν προσφέρουνκάτι ½ ÒÐÙ Ó ØÖÑ ¾ ÒÐÙ ÑØ º Ù Ò ÒÑ Ô Ø Ð ËÔ ß ÔÙÐ ÚÖØÙÐ ÓÙÐ Ö µ¼ ÚÖØÙÐ ÓÙÐ Ô Ö Ñ Ø Ö µ¼ ÚÓ Ø Ð µ ½¼ Ð ½½ ½¾ ÚÓ ËÔ Ø Ð µ ½ ß ½ ÓÙØÖÖ µòð ½ ÓÙØ ÈÖÑØÖ Ô Ö Ñ Ø Ö µòð ½ Ð ½ ½½
½ Ð Ö Ð ÔÙÐ ËÔ ½ ß ¾¼ ÔÖÚØ ¾½ ÓÙРܼ ݼ Ö ¾¾ ÔÙÐ ¾ Ö Ð ÓÙÐ ÓÙÐ ÓÙРʵ ¾ ÚÖØÙÐ ÓÙÐ Ö µ ¾ ÚÖØÙÐ ÓÙÐ Ô Ö Ñ Ø Ö µ ¾ Ð ¾ ¾ Ö Ð Ö Ð ÓÙÐ ÓÙÐ ÓÙРʵ ¾ ß ¼ ܼ ½ ݼ ¾ ÖÊ Ð ÓÙÐ Ö Ð Ö µ ß ÖØÙÖÒ ÅÈÁ Ö Ö Ð ¼ ÓÙÐ Ö Ð Ô Ö Ñ Ø Ö µ ½ ß ¾ ÖØÙÖÒ ¾ ÅÈÁ Ö Ð Ð ËÕÙÖ ÔÙÐ ËÔ ß ÔÖÚØ ÓÙÐ ÔÙÐ ¼ ËÕÙÖ ÓÙÐ µ ½ ÚÖØÙÐ ÓÙÐ Ö µ ¾ ÚÖØÙÐ ÓÙÐ Ô Ö Ñ Ø Ö µ Ð ËÕÙÖ ËÕÙÖ ÓÙÐ µ ß Ð ¼ ÓÙÐ ËÕÙÖ Ö µ ½ ß ¾ ÖØÙÖÒ Ð ½¾
ÓÙÐ ËÕÙÖ Ô Ö Ñ Ø Ö µ ß ÖØÙÖÒ Ð ¼ ÒØ ÑÒ µ ½ ß ¾ ËÔ ½ ¾ ½ÒÛ Ö Ð ½ ¼ ¼ ½ ¼ ¼ ½ ¼ µ ¾ÒÛ ËÕÙÖ ¾ ¼ µ ½ Ø Ð µ ¾ Ø Ð µ ÐØ ½ ÐØ ¾ Ð Σεαυτήντηνπερίπτωσηαρκείνααναθέσουμεσεμια ÚÖØÙÐμέθοδοτηντιμή ¼προκειμένουνακαθοριστείπωςδενπρόκειταιναυλοποιηθείαπότηνπαρούσα κατηγοριά αλλά από κάποια απόγονο κατηγορίαº ½