Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Γ΄ Λυκείου => Μήνυμα ξεκίνησε από: Δημήτρης Χατζόπουλος στις 17 Απρ 2025, 02:35:12 ΜΜ

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

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

 

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

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



Τίτλος: Απ: ΠΟΛΥΜΟΡΦΙΣΜΟΣ Ή ΟΧΙ
Αποστολή από: dimitrios67 στις 20 Απρ 2025, 07:36:06 ΜΜ
Χριστος Ανεστη και Χρόνια πολλά!
Κώδικας σε 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 στις 20 Απρ 2025, 07:48:25 ΜΜ
Καλύτερο παράδειγμα έχει εδώ
https://www.w3schools.com/java/java_polymorphism.asp

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