Πολυμορφισμός

Έστω η κλάση Σχήμα η οποία έχει δύο υποκλάσεις : την Παραλληλόγραμμο και την Κύκλος.

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

				
					! Ορισμός Μιας Κλάσης με Όνομα Σχήμα
ΚΛΑΣΗ Σχήμα:
    ! Ιδιότητα: Χρώμα του Σχήματος
    ΧΑΡΑΚΤΗΡΕΣ: χρώμα

    ! Θέση X και Υ του Σχήματος
    ΑΚΕΡΑΙΕΣ: θέσηΧ, θέσηΥ

    ! Μέθοδος: Υπολογισμός Απόστασης από το Σημείο (0,0)
    ΣΥΝΑΡΤΗΣΗ απόσταση():
        ! Χρησιμοποιούμε το Θεώρημα Πυθαγόρα για τον υπολογισμό της απόστασης
        απόσταση <- Τ_Ρ(θέσηΧ^2 + θέσηΥ^2)
    ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΤΕΛΟΣ_ΚΛΑΣΗΣ

! Υποκλάση: Παραλληλόγραμμο
ΥΠΟΚΛΑΣΗ Παραλληλόγραμμο(Σχήμα):
    ! Ιδιότητες της Παραλληλόγραμμο
    ΑΚΕΡΑΙΕΣ: μήκος, πλάτος

    ! Μέθοδος: Εμβαδόν Παραλληλογράμμου
    ΣΥΝΑΡΤΗΣΗ εμβαδόν():
        εμβαδόν <- μήκος * πλάτος
    ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΤΕΛΟΣ_ΥΠΟΚΛΑΣΗΣ

! Υποκλάση: Κύκλος
ΥΠΟΚΛΑΣΗ Κύκλος(Σχήμα):
    ! Ιδιότητα του Κύκλου
    ΑΚΕΡΑΙΕΣ: ακτίνα

    ! Μέθοδος: Εμβαδόν Κύκλου
    ΣΥΝΑΡΤΗΣΗ εμβαδόν():
        εμβαδόν <- 3.14 * ακτίνα * ακτίνα
    ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΤΕΛΟΣ_ΥΠΟΚΛΑΣΗΣ
				
			

Ο κώδικας που ακολουθεί δημιουργεί δύο αντικείμενα: ένα από την κλάση Παραλληλόγραμμο και ένα από την κλάση Κύκλος. 

Στην συνέχεια αρχικοποιούμε τις μεταβλητές των αντικειμένων και καλούμε την μέθοδο εμβαδόν και από τα δύο αντικείμενα. Προσέξτε τις γραμμές 13 και 14. Χρησιμοποιούμε το ίδιο όνομα για δύο  διαφοτερικές μεθόδους. Αυτό ονομάζεται Πολυμορφισμός

				
					! Δημιουργία αντικειμένων από τις υποκλάσεις Παραλληλόγραμμο και κύκλος
Παραλληλόγραμμο1 <-  new Παραλληλόγραμμο()
Κύκλος1 <- new Κύκλος()

! Ορισμός των ιδιοτήτων του παραλληλογράμμου
Παραλληλόγραμμο1.μήκος <- 5
Παραλληλόγραμμο1.πλάτος <- 3

! Ορισμός της ιδιότητας της ακτίνας του κύκλου
Κύκλος1.ακτίνα <- 4

! Κλήση της μεθόδου εμβαδόν σε κάθε υποκλάση ξεχωριστά
εμβαδόν_παραλληλογράμμου <- Παραλληλόγραμμο1.εμβαδόν()
εμβαδόν_κύκλου <- Κύκλος1.εμβαδόν()

! Εμφάνιση των ιδιοτήτων και του εμβαδού του παραλληλογράμμου
εκτύπωση(Παραλληλόγραμμο1.μήκος, Παραλληλόγραμμο1.πλάτος, εμβαδόν_παραλληλογράμμου)
! Εμφάνιση της ιδιότητας και του εμβαδού του κύκλου
εκτύπωση(Κύκλος1.ακτίνα, εμβαδόν_κύκλου)

				
			

Ένα παράδειγμα πολυμορφισμού που παρατηρούμε στην καθημερινή ζωή μας είναι το νερό. Το νερό μπορεί να υπάρχει σε διαφορετικές καταστάσεις: ως υγρό, ως στερεό (πάγος) και ως αέριο (ατμός). Παρ’ ότι  εμφανίζεται με  διαφορετικές μορφές, παραμένει H₂O. Αυτό δείχνει πώς μια οντότητα μπορεί να πάρει πολλές μορφές, όπως ακριβώς στον πολυμορφισμό του αντικειμενοστραφή προγραμματισμού.

Πολυμορφισμός (polymorphism) είναι μια ιδιότητα του αντικειμενοστραφούς προγραμματισμού με την οποία μια λειτουργία μπορεί να υλοποιείται με πολλούς διαφορετικούς τρόπους.

Ερωτήσεις ανάπτυξης απο Πανελλαδικές εξετάσεις

  1. xxxxxxxxxxxxxxxxxx