Κληρονομικότητα [inheritance]

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Κληρονομικότητα. Εισαγωγή  Κληρονομικότητα (Inheritance) καλείται ο μηχανισμός με τον οποίο μία νέα κλάση που ονομάζεται παράγωγη (derived class) δημιουργείται.
Advertisements

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 9: Διανύσματα και λίστες.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 6: Java Collections Εβδομάδα 6: Συλλογές δεδομένων στην Java.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 10: Graphical User Interfaces Εβδομάδα 10: Εισαγωγή στα Γραφικά Περιβάλλοντα.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Εβδομάδα 2: Υπο-τύποι και πολυμορφισμός [sub-typing and polymorphism]
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 4: Exceptions Εβδομάδα 4: Εξαιρέσεις [Exceptions]
Αντικείμενα, Κλάσεις και Μέθοδοι
Επανάληψη βασικών αρχών του αντικειμενοστρεφούς προγραμματισμού
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου.
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 11: Εκτέλεση Java χωρίς το BlueJ.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Κληρονομικότητα.
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) OOP Concepts and Object-Oriented Design.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής (Αντικειμενοστρεφής Προγραμματισμός)
Μεθοδολογίες Προγραμματισμού ΙΙ Αναδόμηση Λογισμικού - 2 Software Refactoring - Εφαρμογές Παναγιώτης Σφέτσος, PhD
Εισαγωγή στον αντικειμενοστραφή προγραμματισμό Κλάσεις και αντικείμενα Κλάσεις και αντικείμενα Κατασκευαστές κλάσεων (constructors) Κατασκευαστές κλάσεων.
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γενικευμένες κλάσεις Συλλογές.
Εισαγωγή στον αντικειμενοστραφή προγραμματισμό
ΑΝΑΚΕΦΑΛΑΙΩΣΗ 26 Οκτωβρίου Αντικειμενοστρεφής Προγραμματισμός Ένα νέο προγραμματιστικό μοντέλο (paradigm) το οποίο στηρίζεται στις κλάσεις και τα.
ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ ΠΟΛΥΜΟΡΦΙΣΜΟΣ. ΑΝΑΚΕΦΑΛΑΙΩΣΗ Θεματολόγιο Κληρονομικότητα Παράδειγμα Κληρονομικότητα – Βελτιωμένο Παράδειγμα Ενθυλάκωση : public – private.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Πολυμορφισμός.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
ΟΣΣ Δεκεμβρίου 2004 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Έλεγχος Ονομάτων (Name Control) Για ένα πρόγραμμα που αποτελείται από πολλά τμήματα κάποια από τα οποία έχουν πιθανώς γραφτεί από άλλους προγραμματιστές.
Threads Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά η μία μετά.
Applets Εκτελούνται από τον appletviewer και από Java enabled web browsers Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη.
1 Κεφάλαιο 2 Εισαγωγή στον αντικειμενοστραφή προγραμματισμό.
Κεφάλαιο 4 Εξαιρέσεις. Όταν σε ένα πρόγραμμα συμβεί κάποιο λάθος, ο κώδικας εγείρει (throw) μία εξαίρεση. Στη Java oι εξαιρέσεις εκπροσωπούνται από αντικείμενα.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 9: Κληρονομικότητα. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής. Τμήμα.
Αντικειμενοστραφής Προγραμματισμός Ι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα.
Κεφάλαιο 23 Η ζωή στις εύκρατες περιοχές. Εύκρατες περιοχές Εύκρατες ονομάζονται οι περιοχές που βρίσκονται ανάμεσα στην τροπική ζώνη και τις πολικές.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Παράδειγμα Κληρονομικότητας Γενικευμένες κλάσεις.
Κεφάλαιο 33 Οι σχέσεις των κρατών της Ευρώπης και η Ευρωπαϊκή Ένωση.
ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Αντικειμενοστραφής προγραμματισμός Web Site: ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ.
ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΣΥΣΤΗΜΑΤΩΝ ΕΦΟΔΙΑΣΜΟΥ ΑΡΧΕΣ ΛΟΓΙΣΤΙΚΗΣ ΚΑΘΗΓΗΤΗΣ: Δρ ΠΑΝΑΓΙΩΤΗΣ ΚΩΤΣΙΟΣ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2015/2016.
ΟΣΣ2 - 4 Δεκεμβρίου 2005 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Κεφάλαιο 28 Η χλωρίδα και η πανίδα – Η βλάστηση της Ευρώπης.
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Οντοκεντρικός Προγραμματισμός
Εργαστηριακό σεμινάριο Χειμερινό εξάμηνο
Βασικές έννοιες Αντικειμενοστραφούς Προγραμματισμού ΙΙ
Software Engineering for Web Applications
Κλάσεις και αντικείμενα
Αντικειμενοστραφής Προγραμματισμός (Object Oriented Programming)
Βασικές έννοιες Αντικειμενοστραφούς Προγραμματισμού ΙΙ
Wrapper Classes, Abstract Classes and Interfaces
Κελυφοποιημένα δεδομένα [encapsulated data]
Εισαγωγή στον Προγ/μό Η/Υ
Στισ γειτονιεσ των Αστεγων
Κεφάλαιο 22 Η ζωή στα τροπικά δάση.
Εισαγωγή στη Java Χαρακτηριστικά της Java Εργαλεία της Java
Καρέκλη Ελένη Βοσινάκης Παντελής Ευαγγελακάκης Κωνσταντίνος
Ειδικά Θέματα στον προγραμματισμό Υπολογιστών
Η Ένταξη παιδιών με απώλεια ακοής στη γενική εκπαίδευση
JAVA – Basic OOP Principles
ΛΙΠΙΔΙΑ.
Εφαρμογή Μεθοδολογίας ICONIX
Η θέση και το φυσικό περιβάλλον της Νότιας Αμερικής
ΑΝΑΝΕΩΣΙΜΕΣ ΠΗΓΕΣ ΕΝΕΡΓΕΙΑΣ & ΟΙΚΟΝΟΜΙΚΗ ΑΥΤΑΡΚΕΙΑ ΤΗΣ ΠΕΡΙΟΧΗΣ
Η ζωή στις πολικές περιοχές
Επιστημονική Υπεύθυνη: Αλεξάνδρα Ανδρούσου Επόπτης: Σταύρος Σταύρου
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
Υπο-τύποι και πολυμορφισμός
Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό (στη γλώσσα Java)
Εξαιρέσεις [Exceptions]
Κληρονομικότητα [inheritance]
Μεταγράφημα παρουσίασης:

Κληρονομικότητα [inheritance]

Κληρονομικότητα [inheritance] Τι είναι η κληρονομικότητα; Γιατί είναι σημαντική;

Οι κλάσεις CD Video

Κελυφοποιημένα δεδομένα [encapsulated data] αντικείμενο CD αντικείμενο Video title title artist director comment comment Δεδομένα «φυλάσσονται» σε κάθε αντικείμενο

Μέθοδοι αντικείμενο CD αντικείμενο Video CD Video set... get... set... print print Μέθοδοι επενεργούν πάνω στο κάθε αντικείμενο

Κώδικας Java (CD) class CD { String title; String artist; String comment; CD(String theTitle, String theArtist) { title = theTitle; artist = theArtist; comment = “ “; } void setComment(String newComment) { … } String getComment() void print() … Κώδικας Java (CD)

Κώδικας Java (Video) class Video { String title; String director; String comment; Video(String theTitle, String theDirector) { title = theTitle; director = theDirector; comment = “ ”; } void setComment(String newComment) { … } String getComment() void print() … Κώδικας Java (Video)

Μειονεκτήματα Επανάληψη κώδικα στις κλάσεις CD και Video Επιπλέον εργασία για τροποποίηση του πηγαίου κώδικα Δυο διανύσματα και επανάληψη κώδικα στην κλάση Database

Η εναλλακτική λύση: κληρονομικότητα Item CD Video Σημείωση: «τετράγωνα» εικονίδια αναπαριστούν κλάσεις

Τα πεδία των κλάσεων Item CD Video Οι υποκλάσεις [subclasses] κληρονομούν τα πεδία από τις υπερκλάσεις [superclasses]. Item title comment CD Video artist director CD: title, artist, comment Video: title, director, comment

Οι μέθοδοι των κλάσεων Item Video CD Οι υποκλάσεις κληρονομούν τις μεθόδους από τις υπερκλάσεις. Item setComment() print() ... CD Video CD() Video() getArtist() getDirector() ... ... CD: CD(), getArtist(), setComment(), print() Video: Video(), getDirector(), setComment(), print()

Προεκτάσεις Item MusicCD Video VideoGame

Επιπλέον προεκτάσεις Item MusicCD Video Game VideoGame BoardGame

Ορολογία Κλάση βάσης [base class] Υπερκλάση [superclass] Γονέας [parent] Παιδί [child] Παραγόμενη κλάση [derived class] Υποκλάση [subclass]

Πλεονεκτήματα της κληρονομικότητας Αποφυγή επανάληψης κώδικα Επαναχρησιμοποίηση κώδικα Πιο εύκολη συντήρηση κώδικα Επεκτασιμότητα [extendability]

Κώδικας Java με χρήση κληρονομικότητας class Item { ... } class MusicCD extends Item class Video extends Item

Διάγραμμα κλάσεων [Class diagram] Database Item MusicCD Video

Πηγαίος κώδικας (χρήστης [client]) void list() { for (int i = 0; i < myItems.length; i++) myItems[i].print(); }

Η κλάση “Object” Object Person Game Staff Student (Σχεδόν) κάθε κλάση έχει μία υπερ-κλάση. Εάν η υπερ-κλάση δεν έχει άμεσα δηλωθεί, τότε ως υπερκλάση θεωρείται η κλάση Object Οι μέθοδοι της κλάσης Object είναι διαθέσιμες σε κάθε κλάση Object Person Game Staff Student

Πλεονεκτήματα της κληρονομικότητας Αποφυγή επανάληψης κώδικα από τον χρήστη της κλάσης!