java:generics_inheritance

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:generics_inheritance [2015/03/19 15:45]
gthanos
java:generics_inheritance [2018/04/15 08:15]
gthanos
Line 11: Line 11:
 doubleBox.add(new Double(10.1));           // line 8 doubleBox.add(new Double(10.1));           // line 8
  
-box.boxTest(doubleBox); // μπορούμε να γράψουμε?+box.boxTest(doubleBox); // line 10. Μπορούμε να γράψουμε?
 </code> </code>
-Ο παραπάνω κώδικας είναι σωστός στις γραμμές 3-5 διότι οι κλάσεις ''Integer'' και ''Double'' είναι υποκλάσεις της κλάσης ''Number''. Δεν ισχύει όμως το ίδιο για την γραμμή καθώς η κλάση ''Box<Double>'' **__δεν είναι__** υποκλάση της κλάσης ''Box<Number>'', όπως δείχνει το παρακάτω σχήμα. ''Box<Number>'' και ''Box<Double>'' είναι υποκλάσεις της κλάσης ''Object''.+Ο παραπάνω κώδικας είναι σωστός στις γραμμές 3 έως και 8. Στις γραμμές 3-5 οι κλάσεις ''Integer'' και ''Double'' είναι υποκλάσεις της κλάσης ''Number'', ενώ στις γραμμές 7-8 το αντικείμενο ''doubleBox'' αποθηκευει ένα αντικείμενο τύπου ''Double''. Δεν ισχύει όμως το ίδιο για την γραμμή 10 καθώς η κλάση ''Box<Double>'' **__δεν είναι__** υποκλάση της κλάσης ''Box<Number>'', όπως δείχνει το παρακάτω σχήμα. ''Box<Number>'' και ''Box<Double>'' είναι υποκλάσεις της κλάσης ''Object''.
 {{  :java:generics_inheritance1.png?400  }}  {{  :java:generics_inheritance1.png?400  }} 
  
Line 42: Line 42:
   ArrayList<E>             ArrayList<String>                 ArrayList<Integer>   ArrayList<E>             ArrayList<String>                 ArrayList<Integer>
 </code> </code>
 +
 +|Προηγούμενο: [[:java:generic_methods | Παραμετρικοί τύποι δεδομένων σε μεθόδους (Generic Methods)  ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java:generic_bounded_types | Φραγμένοι παραμετρικοί τύπων δεδομένων  ]] |
  
java/generics_inheritance.txt · Last modified: 2020/03/10 10:21 (external edit)