java:polymorphism

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
java:polymorphism [2016/02/15 08:57]
gthanos [Στατικός Πολυμορφισμός]
java:polymorphism [2016/02/15 09:04]
gthanos [Στατικός Πολυμορφισμός]
Line 3: Line 3:
 ===== Στατικός Πολυμορφισμός ===== ===== Στατικός Πολυμορφισμός =====
  
-Σε [[java:​class_methods#​Υπερφόρτωση (overloading) των μεθόδων μίας κλάσης | προηγούμενη ενότητα]] είδαμε την δυνατότητα ορισμού σε μία κλάση μεθόδων με το ίδιο όνομα αλλά με διαφορετικό αριθμό ή/και τύπους δεδομένων. Η δυνατότητα αυτή που μας δίνει η Java και ο Αντικειμενοστραφής Προγραμματισμός γενικότερα,​ ονομάζεται //method overloading//​ και οφείλεται στο γεγονός ότι μία μέθοδος δεν ορίζεται μόνο από το όνομα της αλλά και από το σύνολο των τυπικών παραμέτρων της. Τυπικές παράμετροι και όνομα αποτελούν το //signature// (υπογραφή) της κάθε μεθόδου.+Σε [[java:​class_methods#​Υπερφόρτωση (overloading) των μεθόδων μίας κλάσης | προηγούμενη ενότητα]] είδαμε την δυνατότητα ορισμού σε μία κλάση μεθόδων με το ίδιο όνομα αλλά με διαφορετικό αριθμό ή/και τύπους δεδομένων. Η δυνατότητα αυτή που μας δίνει η Java και ο Αντικειμενοστραφής Προγραμματισμός γενικότερα,​ ονομάζεται //method overloading//​ και οφείλεται στο γεγονός ότι μία μέθοδος δεν ορίζεται μόνο από το όνομα της αλλά και από το σύνολο των τυπικών παραμέτρων της. Τυπικές παράμετροι και όνομα αποτελούν την //​υπογραφή// (signature) της κάθε μεθόδου.
  
-Ένα παράδειγμα //method overloading//​ δίνεται παρακάτω:/​* ([[http://​stackoverflow.com/​questions/​20783266/​what-is-the-difference-between-dynamic-and-static-polymorphism-in-java | πηγή]])*/​+Ένα παράδειγμα //method overloading//​ δίνεται παρακάτω:​ /* ([[http://​stackoverflow.com/​questions/​20783266/​what-is-the-difference-between-dynamic-and-static-polymorphism-in-java | πηγή]])*/​
  
 <code java Calculation.java>​ <code java Calculation.java>​
 class Calculation {  ​ class Calculation {  ​
-  void sum(int a,int b){System.out.println(a+b);​} ​  +  void sum(int a,int b){ System.out.println(a+b);​ } 
-  void sum(int a,int b,int c){System.out.println(a+b+c);​}  ​+  void sum(double a, double b) { System.out.println(a+b);​ } 
 +  void sum(int a,int b,int c){ System.out.println(a+b+c);​ }  ​
  
   public static void main(String args[]) {  ​   public static void main(String args[]) {  ​
     Calculation obj=new Calculation();  ​     Calculation obj=new Calculation();  ​
     obj.sum(10,​10,​10);  ​     obj.sum(10,​10,​10);  ​
-    obj.sum(20,​20); ​     +    obj.sum(20,​20);​ 
 +    obj.sum(12.2,​ 11.3); ​   ​
   }  ​   }  ​
 </​code>​ </​code>​
  
-Η παραπάνω διαδικασία αναφέρεται συχνά και ως στατικός πολυμορφισμός (static polymorphism) σε αντιδιαστολή με τον δυναμικό πολυμορφισμό που θα δούμε στη συνέχεια.+Η παραπάνω διαδικασία αναφέρεται συχνά και ως στατικός πολυμορφισμός (//static polymorphism//) σε αντιδιαστολή με τον δυναμικό πολυμορφισμό που θα δούμε στη συνέχεια. 
 + 
 +<WRAP important 80% center round> 
 +Όπως προαναφέραμε,​ ο στατικός πολυμορφισμός βασίζεται στον διαφορετικό αριθμό,​ τον τύπο και τη σειρά ορισμάτων. Το συγκεκριμένο είδος πολυμορφισμού ονομάζεται στατικό διότι η μέθοδος που θα κληθεί αποφασίζεται από τον compiler κατά την μεταγλώττιση του προγράμματος. 
 +</​WRAP>​
  
 ===== Δυναμικός Πολυμορφισμός ===== ===== Δυναμικός Πολυμορφισμός =====
java/polymorphism.txt · Last modified: 2017/02/16 14:20 by gthanos