ΠΟΛΥΜΟΡΦΙΣΜΟΣ Ή ΟΧΙ

Ξεκίνησε από Δημήτρης Χατζόπουλος, 17 Απρ 2025, 02:35:12 ΜΜ

« προηγούμενο - επόμενο »

Δημήτρης Χατζόπουλος

Καλησπέρα και καλή Ανάσταση!
Ας υποθέσουμε ότι δίνεται ένα διάγραμμα υπερκλάσης - υποκλάσεων για ένα αντικειμενοστραφή σχεδιασμό για καθηγητές σχολείου, με 4 υποκλάσεις.
Η υπερκλάση καθηγητής και οι υποκλάσεις Μαθηματικός, Πληροφορικός, Φυσικός και Χημικός.
Στις υποκλάσεις Φυσικός και χημικός, υπάρχει η μέθοδος "Παραδίδει πειράματα" οι οποίες όμως εκτελούνται διαφορετικά.
Επειδή οι άλλες 2 υποκλάσεις δεν έχουν την προηγούμενη μέθοδο, η μέθοδος αυτή, δεν μπαίνει στην υπερκλάση.
Η ερώτηση προς τους συναδέλφους ειναι η εξής: Στην πρόταση "Στη μέθοδο "παραδίδει πειράματα" υπάρχει το χαρακτηριστικό του πολυμορφισμού", απαντάμε Σωστό ή λάθος;
(Προσωπική γνώμη είναι πως πρέπει να θεωρηθεί σωστό, διότι παρότι δεν είναι στην υπερκλάση, υπάρχει σε 2 υποκλάσεις και υλοποιείται με διαφορετικό τρόπο. Ωστόσο νομίζω ότι ειναι ένα ακόμα γκρίζο σημείο που θα πρέπει να αποφευχθεί, αλλά θα ήθελα τις γνώμες σας.)

 

George Eco

Παράθεση από: ΔΗΜΗΤΡΗΣ Χ στις 17 Απρ 2025, 02:35:12 ΜΜΚαλησπέρα και καλή Ανάσταση!
Ας υποθέσουμε ότι δίνεται ένα διάγραμμα υπερκλάσης - υποκλάσεων για ένα αντικειμενοστραφή σχεδιασμό για καθηγητές σχολείου, με 4 υποκλάσεις.
Η υπερκλάση καθηγητής και οι υποκλάσεις Μαθηματικός, Πληροφορικός, Φυσικός και Χημικός.
Στις υποκλάσεις Φυσικός και χημικός, υπάρχει η μέθοδος "Παραδίδει πειράματα" οι οποίες όμως εκτελούνται διαφορετικά.
Επειδή οι άλλες 2 υποκλάσεις δεν έχουν την προηγούμενη μέθοδο, η μέθοδος αυτή, δεν μπαίνει στην υπερκλάση.
Η ερώτηση προς τους συναδέλφους ειναι η εξής: Στην πρόταση "Στη μέθοδο "παραδίδει πειράματα" υπάρχει το χαρακτηριστικό του πολυμορφισμού", απαντάμε Σωστό ή λάθος;
(Προσωπική γνώμη είναι πως πρέπει να θεωρηθεί σωστό, διότι παρότι δεν είναι στην υπερκλάση, υπάρχει σε 2 υποκλάσεις και υλοποιείται με διαφορετικό τρόπο. Ωστόσο νομίζω ότι ειναι ένα ακόμα γκρίζο σημείο που θα πρέπει να αποφευχθεί, αλλά θα ήθελα τις γνώμες σας.)

 

Ωραίο!!!
Το πρόβλημα έχει να κάνει με το design. Αν ομαδοποιήσεις το Φυσικό και Χημικό με μία υπερκλάση που θα είναι υποκλάση του Καθηγητής και χώσεις ΕΚΕΙ τη μέθοδο λύνεται το πρόβλημα. Το θέμα είναι πως αυξάνεται η δυσκολία της άσκησης και μπορεί να μπερδέψει και μερικούς.

Ερώτηση:
Αν θέλω δε μπορώ σα Πληροφορικός να κάνω πείραμα και να ρίξω το γενικό διακόπτη του Λυκείου;
Ο Μαθηματικός δε μπορεί να κάνει ένα στατιστικό πείραμα με τα παιδιά και να βρουν νούμερα να παίξουν μπαλίτσα;
Κάντη πλήρως πολυμορφική. :D




dimitrios67

Χριστος Ανεστη και Χρόνια πολλά!
Κώδικας σε Java με υπερκλάση Α, υποκλάσεις Β1 και Β2, 
όπου υλοποιούμε την μεθοδο method με διαφορετικόν τρόπο.
Στην ουσια εχουμε method override και προφανως η method ειναι πολυμορφική.
class A{
    void method(){
        System.out.println("class A");
    }
}
class B1 extends A{
    void method(){
        System.out.println("class B1");
    }
}
class B2 extends A{
    void method(){
        System.out.println("class B2");
    }
}
public class MyClass {
  public static void main(String args[]) {
     A a = new A();
    a.method();  
    B1 aB1 = new B1();
    aB1.method();
    B2 aB2 = new B2();
    aB2.method();
  }
}

Foto

Καλύτερο παράδειγμα έχει εδώ
https://www.w3schools.com/java/java_polymorphism.asp

Στους ορισμούς τα methods πρέπει να είναι public, και void αφού δεν επιστρέφουν κάτι.