Αντικειμενοστραφής Προγραμματισμός (Object Oriented Programming)

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Advertisements

Δαμιανός Χατζηαντωνίου Οικονομικό Πανεπιστήμιο Αθηνών
Σχεδιασμός Design Δρ. Μαρία Ι. Ανδρέου.
Semantic Web Technologies
Βάσεις Δεδομένων II Περίληψη: Αντικειμενοστρεφείς Βάσεις Δεδομένων Πάνος Βασιλειάδης Νοέμβρης 2002
Γλωσσική Τεχνολογία Object-Orientation in Python.
Αντικειμενοστρεφής Προγραμματισμός, Αντώνιος Συμβώνης, Πανεπιστήμιο Ιωαννίνων, Slide 1 Week 13: Review Εβδομάδα 13: Ανασκόπηση.
Δαμιανός Χατζηαντωνίου Οικονομικό Πανεπιστήμιο Αθηνών
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) OOP Concepts and Object-Oriented Design.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής (Αντικειμενοστρεφής Προγραμματισμός)
Από τα τμήματα στα Αντικείμενα FROM MODULES TO OBJECTS Δρ. Μαρία Ι. Ανδρέου.
HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής, Ε.Μ.Π.
Εισαγωγή στον αντικειμενοστραφή προγραμματισμό
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
1 Κεφάλαιο 2 Εισαγωγή στον αντικειμενοστραφή προγραμματισμό.
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Κ.ΑΛΑΦΟΔΗΜΟΣ καθηγητής Δ.Παπαχρήστος μέλος ΕΔΙΠ ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΠΑΝΕΠΙΣΤΗΜΙΟ Α ΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.
ANAΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ Aντικειμενοστρεφής Ανάπτυξη Συστημάτων Εισαγωγή στη UML.
3 ο Γυμνάσιο Τρικάλων Περιβάλλον και Εκπαίδευση για την αειφόρο ανάπτυξη Τίτλος Θέματος: «Μνημεία Παγκόσμιας Κληρονομιάς» Ονοματεπώνυμο και ειδικότητα.
Σεμινάριο & Υποχρεώσεις Μονάδα Αριστείας ΕΛ/ΛΑΚ ΤΕΙ Αθήνας Θερινό Σχολείο «Προγραμματισμός Arduino για έλεγχο του Diyiot- car & ανάπτυξη WEB περιβάλλοντος.
Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): Προαπαιτούμενα: ΤΠ2003,2103.
LOGO Προγραμματισμός Η/Υ β’ εξάμηνο – εργαστήριο ΚΑΛΟΓΙΑΝΝΗΣ ΓΡΗΓΟΡΙΟΣ Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών Α.Π.Θ. Msc Τηλεπικοινωνίες Πολυτεχνική.
Εισαγωγή στη C# Μαρίνος Θεμιστοκλέους Ανδρούτσου 150 Γραφείο 206 Τηλ Ώρες Γραφείου: Τετάρτη 5-6 μμ.
Βασικές ένοιες Αντικειμενοστραφούς Προγραμματισμού - Κλάσεις ΕΡΓΑΣΤΗΡΙΟ AΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Διαφάνειες: ΧΟΧΟΛΗΣ ΔΙΟΝΥΣΙΟΣ Προσαρμογή 2014:
Αντικειμενοστρεφής Προγραμματισμός Object-Oriented Programming.
Η ΘΕΣΗ ΤΗΣ ΓΥΝΑΙΚΑΣ.
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Βασικές Έννοιες της Πληροφορικής
∆οµηµένες Αναπαραστάσεις Γνώσης
Μαργαρίτα Παπαδάκη – Άννα Τσακάλη
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Ασκήσεις Κεφάλαιο 14.
Κληρονομικότητα [inheritance]
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Β΄ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ
Wrapper Classes, Abstract Classes and Interfaces
Διδακτικη των μαθηματικων
Κελυφοποιημένα δεδομένα [encapsulated data]
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΤΕΧΝΟΛΟΓΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ
Ειδικά Θέματα στον Προγραμματισμό Υπολογιστών
Εισαγωγή στον προγραμματισμό
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΟΡΓΑΝΩΣΗ ΤΗΣ ΟΡΘΟΔΟΞΗΣ ΕΚΚΛΗΣΙΑΣ
ΑΠΟΙΚΙΣΜΟΣ Α’ & Β΄.
Εργασίες μαθητών σχ. έτους 2015 – Ο ΕΚ Ανατολικής Αττικής
ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης
Γεωμορφολογικά χαρακτηριστικά της Ρουμανίας
Διδάσκων: Κων/νος Κώτης
Πρότυπα Προγραμματισμού
Εφαρμογή Υλοποίηση βιβλιοθήκης για προσομοίωση Η/Μ διατάξεων με MAS
Κολυμβητήριο και άσκηση
Ειδικά Θέματα στον προγραμματισμό Υπολογιστών
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Προχωρημένος Προγραμματισμός
JAVA – Basic OOP Principles
ΕΛΕΝΗ ΜΙΧΑΗΛΙΔΟΥ Α2 Ο ΓΙΟΥΓΚΟΣΛΑΒΙΚΟΣ ΕΜΦΥΛΙΟΣ ΠΡΟΤΥΠΟ ΓΥΜΝΑΣΙΟ ΕΥΑΓΓΕΛΙΚΗΣ ΣΧΟΛΗΣ ΣΜΥΡΝΗΣ ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ ΤΩΝ ΘΡΗΣΚΕΥΤΙΚΩΝ ΔΙΔΑΣΚΩΝ: Γ. ΚΑΠΕΤΑΝΑΚΗΣ.
ΥΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ
ΥΠΕΥΘΥΝΟΣ ΚΑΘΗΓΗΤΗΣ: κ. ΚΑΠΕΤΑΝΑΚΗΣ
ΠΡΟΤΥΠΟ ΓΥΜΝΑΣΙΟ ΕΥΑΓΓΕΛΙΚΗΣ ΣΧΟΛΗΣ ΣΜΥΡΝΗΣ Σχολικό Έτος
Μεθοδολογία Έρευνας Διάλεξη 10η (2017 – 18) Παρουσίαση Πτυχιακής Εργασίας Δρ. Αλέξανδρος Αποστολάκης E-class μαθήματος:
ΗΦΑΙΣΤΕΙΟ ΣΑΝΤΟΡΙΝΗΣ-ΒΕΖΟΥΒΙΟΥ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
Wrapper Classes, Abstract Classes and Interfaces
Υπο-τύποι και πολυμορφισμός
Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό (στη γλώσσα Java)
Ιδιωτική οικονομική 1η ενότητα «ΕΝΝΟΙΑ ΚΑΙ ΚΑΤΗΓΟΡΙΕΣ ΤΗΣ ΕΠΙΧΕΙΡΗΣΗΣ»
Κληρονομικότητα [inheritance]
Μεταγράφημα παρουσίασης:

Αντικειμενοστραφής Προγραμματισμός (Object Oriented Programming) Βελώνης Γεώργιος – Καθηγητής Πληροφορικής ΠΕ20 Σχ. Έτος 2015-16

Περιεχόμενα Τι είναι ο Αντικειμενοστραφής Προγραμματισμός Τι είναι τα Αντικείμενα (Objects) Περισσότερα για τις Μεθόδους Πρόσβαση σε ιδιότητες και μεθόδους Τι είναι οι Κλάσεις (Classes) Κληρονομικότητα (Inheritance) Πολυμορφισμός (Polymorphism) και Υπερφόρτωση (Overloading) Ενθυλάκωση (Encapsulation) Αφαίρεση δεδομένων (Abstraction) Αφηρημένη κλάση (Abstract Class)

Τι είναι ο Αντικειμενοστραφής Προγραμματισμός Ο αντικειμενοστραφής προγραμματισμός (OOP - object oriented programming) είναι μια τεχνική ανάπτυξης προγραμμάτων διαφορετική από τις παλαιές τεχνικές προγραμματισμού, όπως ο διαδικαστικός (procedural) και συναρτησιακός (functional) προγραμματισμός. Στον αντικειμενοστραφή προγραμματισμό, ένα πρόγραμμα είναι μια συλλογή από κλάσεις (classes) και αντικείμενα (objects), όπου το ένα επικοινωνεί με το άλλο και δίνεται έμφαση στη δημιουργία μονάδων οι οποίες θα περιλαμβάνουν τα δεδομένα αλλά και τις εντολές που θα τα διαχειριστούν.

Τι είναι τα Αντικείμενα (Objects) Βασικά στοιχεία του αντικειμενοστραφούς προγραμματισμού είναι τα αντικείμενα. Στον κόσμο που μας περιβάλλει, ως αντικείμενο ορίζουμε οποιοδήποτε πράγμα υπάρχει σε αυτόν, κάτι ανάλογο δηλαδή με αυτό που στη γραμματική της φυσικής μας γλώσσας ονομάζουμε «ουσιαστικό». Για παράδειγμα μπορούμε να αναφέρουμε μία μπάλα, ένα αυτοκίνητο, ένα σκύλο κ.λπ., οντότητες δηλαδή (έμψυχες ή άψυχες) οι οποίες έχουν συγκεκριμένες ιδιότητες ή/και μπορούν να εκτελούν συγκεκριμένες ενέργειες. Στην προγραμματιστική ορολογία, ως αντικείμενο χαρακτηρίζεται μια δομή δεδομένων η οποία διαθέτει ιδιότητες (attributes ή properties) και μεθόδους (methods).

Τι είναι τα Αντικείμενα (Objects) Αντικείμενο Ιδιότητες Μέθοδοι Οι ιδιότητες περιγράφουν ένα αντικείμενο με τρόπο ανάλογο με εκείνον που ένα επίθετο προσδιορίζει το ουσιαστικό, π.χ. πλαστική μπάλα, κόκκινο αυτοκίνητο, καφέ σκύλος, κ.λπ. Οι μέθοδοι ενός αντικειμένου καθορίζουν το πώς αυτό συμπεριφέρεται ή ενεργεί, ακριβώς όπως τα ρήματα καθορίζουν τη συμπεριφορά ενός ουσιαστικού, π.χ. ο σκύλος γαυγίζει, κινείται, κάθεται, κ.λπ.

Περισσότερα για τις Μεθόδους Στον προγραμματισμό, Συνάρτηση αποκαλείται μια αυτοδύναμη μονάδα κώδικα προγράμματος που έχει σχεδιασθεί για να εκτελεί μια συγκεκριμένη εργασία. Οι συναρτήσεις χρησιμοποιούνται για να γλυτώσουμε την επανάληψη κώδικα μέσα στα προγράμματα. Δηλαδή, αν πρέπει να γίνει μια συγκεκριμένη εργασία πολλές φορές μέσα σ’ ένα πρόγραμμα, τότε γράφουμε μια φορά μια κατάλληλη συνάρτηση και μετά την χρησιμοποιούμε από το πρόγραμμα όταν και όπου την χρειαζόμαστε. Μία μέθοδος δεν είναι τίποτα άλλο παρά μία συνάρτηση που ανήκει σε ένα αντικείμενο.

Πρόσβαση σε ιδιότητες και μεθόδους Προκειμένου να αποκτήσουμε πρόσβαση στις ιδιότητες και στις μεθόδους των αντικειμένων που δημιουργήσαμε, χρησιμοποιούμε το λεγόμενο dot notation. Δηλαδή: όνομα_αντικειμένου.ιδιότητα όνομα_αντικειμένου.μέθοδος()

Τι είναι οι Κλάσεις (Classes) Η κεντρική έννοια του αντικειμενοστραφούς προγραμματισμού είναι η Κλάση (Class). Τα αντικείμενα δημιουργούνται από τις κλάσεις. Για την ακρίβεια μάλιστα, οι κλάσεις ορίζονται ως εργοστάσια αντικειμένων (object factories). Είναι δηλαδή, τα στοιχεία εκείνα της γλώσσας, τα οποία κατασκευάζουν αντικείμενα (objects). Όλα τα νέα αντικείμενα που δημιουργούνται από μία κλάση ονομάζονται στιγμιότυπα (instances). Για παράδειγμα, στο διπλανό σχήμα η κλάση «car» θα μπορούσε να περιλαμβάνει τις ιδιότητες «κατασκευαστής», «μοντέλο», «ίπποι», κ.λπ., καθώς και τις μεθόδους «ξεκίνημα», «σταμάτημα», «επιτάχυνση», κ.λπ., ενώ αντικείμενα αυτής θα μπορούσαν να είναι ένα Polo, ένα Mini ή ένα Beetle.

Κληρονομικότητα (Inheritance) Με τον όρο κληρονομικότητα, εννοούμε τη δυνατότητα που έχει μια κλάση να κληρονομεί όλες τις ιδιότητες και τις μεθόδους μιας άλλης κλάσης. Χρησιμοποιώντας λίγο πιο επίσημη ορολογία, λέμε ότι η κλάση που ορίζεται πρώτη είναι η βασική κλάση (base class) και η κλάση που κληρονομεί τη βασική κλάση ονομάζεται παράγωγη κλάση (derived class). Εναλλακτικά οι βασικές κλάσεις ονομάζονται και υπερκλάσεις (superclasses) ενώ οι παράγωγες κλάσεις, οι οποίες κληρονομούν αυτόματα όλες τις μεταβλητές και τις μεθόδους από τις υπερκλάσεις τους, ονομάζονται υποκλάσεις (subclasses). H υπερκλάση δεν έχει καμία διαφορά από τις κλάσεις που έχουμε δει έως τώρα. H υποκλάση όμως χρησιμοποιεί ελαφρά διαφορετική σύνταξη.

Κληρονομικότητα (Inheritance) Με την κληρονομικότητα, επιτυγχάνεται η επαναχρησιμοποίηση κώδικα ο οποίος έχει γραφεί πριν και είναι ένα από τα σημαντικά πλεονεκτήματα των αντικειμενοστρεφών γλωσσών προγραμματισμού σε σχέση με τις συμβατικές γλώσσες. Για να καταλάβουμε την κληρονομικότητα, φανταστείτε το πρόβλημα μιας εταιρίας η οποία έχει ως αντικείμενα πελάτες, υπαλλήλους, προμηθευτές και άλλα συναφή. Τόσο οι πελάτες και οι προμηθευτές όσο και οι υπάλληλοι έχουν κοινά χαρακτηριστικά και συμπεριφορές (μεθόδους). Θα πρέπει να φτιάξουμε 3 κλάσεις με στοιχεία το επώνυμο, όνομα, κωδικό, διεύθυνση, κ.λπ., με συνέπεια να έχουμε πολλές φορές τον ίδιο κώδικα.

Κληρονομικότητα (Inheritance) Αφού λοιπόν οι 3 κλάσεις έχουν τόσα πολλά παρόμοια χαρακτηριστικά, θα ήταν καλύτερα να κάνουμε κάτι διαφορετικό, δηλαδή να φτιάξουμε μια υπερκλάση η οποία θα περιέχει τα κοινά χαρακτηριστικά των πελατών, των προμηθευτών και των υπαλλήλων της εταιρίας. Έπειτα θα ορίσουμε 3 υποκλάσεις (πελάτες, προμηθευτές, υπάλληλοι), κάθε μια από τις οποίες να έχει τα γενικά χαρακτηριστικά της υπερκλάσης. Οι 3 υποκλάσεις, εκτός από τις ιδιότητες τις οποίες ορίζονται μέσα στο εσωτερικό τους, κληρονομούν (άρα μπορούν να χρησιμοποιήσουν) και τις ιδιότητες της υπερκλάσης τους.

Πολυμορφισμός (Polymorphism) και Υπερφόρτωση (Overloading) Ο Πολυμορφισμός είναι μία από τις πιο βασικές έννοιες του αντικειμενοστρεφή προγραμματισμού και σχετίζεται με την αποσύνδεση των μεθόδων από τους τύπους. Πολυμορφισμό έχουμε στην περίπτωση που η ίδια μέθοδος ή ο ίδιος τελεστής χρησιμοποιείται με διαφορετικούς τύπους δεδομένων.

Πολυμορφισμός (Polymorphism) και Υπερφόρτωση (Overloading) Η Υπερφόρτωση είναι ένα χαρακτηριστικό των γλωσσών προγραμματισμού που επιτρέπει τη δημιουργία διαφορετικών μεθόδων που έχουν το ίδιο όνομα, αλλά διαφέρουν μεταξύ τους όσον αφορά τον τύπο της εισόδου και εξόδου. Στην Υπερφόρτωση, ο προγραμματιστής μπορεί να γράψει πολλαπλές μεθόδους που χρησιμοποιούν το ίδιο όνομα, αλλά έχουν διαφορετικές παραμέτρους.

Πολυμορφισμός (Polymorphism) και Υπερφόρτωση (Overloading) Υποσκέλιση (overriding) είναι η κατάσταση κατά την οποία μία θυγατρική κλάση και η γονική της έχουν μία μέθοδο ομώνυμη και με τα ίδια ορίσματα. Χάρη στη δυνατότητα του πολυμορφισμού ο μεταγλωττιστής «ξέρει» πότε να καλέσει ποια μέθοδο, βασισμένος στον τύπο του τρέχοντος αντικειμένου. Δηλαδή πολυμορφισμός είναι η δυνατότητα των αντικειμενοστρεφών μεταγλωττιστών να αποφασίζουν δυναμικά ποια είναι η κατάλληλη να κληθεί μέθοδος σε συνθήκες υποσκέλισης.

Πολυμορφισμός (Polymorphism) και Υπερφόρτωση (Overloading) Σαν παράδειγμα από την καθημερινή μας ζωή μπορούμε να αναφέρουμε: Κάνω καφέ Κάνω τα μαθήματά μου Κάνω τις δουλειές του σπιτιού Κάνω βόλτα Η λέξη «Κάνω» χρησιμοποιείται με διαφορετική έννοια. Ένα άλλο παράδειγμα πολυμορφισμού είναι ο τελεστής της πρόσθεσης «+». Μπορεί να χρησιμοποιηθεί τόσο για την πρόσθεση δύο αριθμών όσο και για τη συνένωση δύο αλφαριθμητικών.

Πολυμορφισμός (Polymorphism) και Υπερφόρτωση (Overloading) Συχνά οι λειτουργίες Πολυμορφισμός και Υπερφόρτωση συγχέονται ως συνώνυμα εξαιτίας της ομοιότητάς τους σε λειτουργία. Ωστόσο, αυτά τα δύο είναι διαφορετικές λειτουργίες και χρησιμοποιούνται για να παράγουν διαφορετικά αποτελέσματα.

Ενθυλάκωση (Encapsulation) Ενθυλάκωση δεδομένων (data encapsulation) καλείται η ιδιότητα που προσφέρουν οι κλάσεις να «κρύβουν» τα ιδιωτικά δεδομένα τους από το υπόλοιπο πρόγραμμα και να εξασφαλίζουν πως μόνο μέσω των δημόσιων μεθόδων τους θα μπορούν αυτά να προσπελαστούν. Αυτή η τακτική παρουσιάζει μόνο οφέλη καθώς εξαναγκάζει κάθε εξωτερικό πρόγραμμα να φιλτράρει το χειρισμό που επιθυμεί να κάνει στα πεδία μίας κλάσης μέσω των ελέγχων που μπορούν να περιέχονται στις δημόσιες μεθόδους της κλάσης. Επίσης, επιτρέπει στον προγραμματιστή να τροποποιεί ή να βελτιώνει τους αλγόριθμους που υπάρχουν σε μια κλάση χωρίς να ανησυχεί μήπως προκαλέσει απρόβλεπτα αποτελέσματα.

Ενθυλάκωση (Encapsulation)

Ενθυλάκωση (Encapsulation) Ένα παράδειγμα ενθυλάκωσης είναι το ράδιο αυτοκινήτου: Η διεπαφή (interface) αποτελείται από τα σημεία διασύνδεσης του ραδίου µε το αυτοκίνητο. Οι λεπτομέρειες σχετικά µε το πώς δουλεύει το ράδιο αποκρύπτονται (Για την εγκατάσταση ενός ραδίου δεν χρειάζεται να γνωρίζουμε τίποτα για το ηλεκτρικό του σύστημα).

Αφαίρεση δεδομένων (Abstraction) Αφαίρεση δεδομένων ή Αφαιρετικότητα καλείται η διαδικασία εξαγωγής µόνο των σχετικών ιδιοτήτων ενός «αντικειμένου». Οι ιδιότητες αυτές ορίζουν µια άποψη του αντικειμένου. Για παράδειγμα, ένας πωλητής αυτοκινήτων ασχολείται µε τα στοιχεία που αφορούν την πώληση ενός αυτοκινήτου όπως τιμή, χρόνος εγγύησης, χρώμα, επιπρόσθετος εξοπλισμός κ.λπ., ενώ ένας μηχανικός βλέπει το αυτοκίνητο από την άποψη της συντήρησης του συστήματος, όπως είδος λαδιού, μέγεθος φίλτρου λαδιού κ.λπ.

Αφαίρεση δεδομένων (Abstraction)

Αφηρημένη κλάση (Abstract Class) Αφηρημένη κλάση είναι μία κλάση που ορίζεται μόνο για να κληρονομηθεί σε θυγατρικές υποκλάσεις και δεν υπάρχουν δικά της στιγμιότυπα (αντικείμενα). Η αφηρημένη κλάση ορίζει απλώς ένα «συμβόλαιο» το οποίο θα πρέπει να ακολουθούν οι υποκλάσεις της όσον αφορά τις υπογραφές των μεθόδων τους (όπου ως υπογραφή ορίζεται το όνομα, τα ορίσματα και η τιμή επιστροφής μίας διαδικασίας). Μία αφηρημένη κλάση μπορεί να έχει και μη αφηρημένες μεθόδους οι οποίες υλοποιούνται στην ίδια την κλάση (αν και φυσικά μπορούν να υποσκελίζονται σε υποκλάσεις). Μια μέθοδος αφηρημένου τύπου σε μια κλάση απλώς ορίζεται, χωρίς να υλοποιείται.

Αφηρημένη κλάση (Abstract Class)

Πηγές ΕΠΛ 132 – Αρχές Προγραμματισµού ΙΙ https://el.wikipedia.org/wiki/ Αντικειμενοστρεφής_προγραμματισμός Εισαγωγή στην Java 2 – Λιακέας Γ. Η γλώσσα JavaScript – Λιακέας Γ. http://python-tutorial-greek.readthedocs.org/en/latest/oop_general.html http://www.differencebetween.info/difference-between-polymorphism-and-overloading