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
java:generics_inheritance [2015/03/19 15:40]
gthanos
java:generics_inheritance [2015/03/19 15:45]
gthanos
Line 21: Line 21:
 Οι σχέσεις κληρονομικότητας μεταξύ παραμετρικών τύπων μπορούν να οριστούν ως εξής. Αν ένα παραμετρικό interface κληρονομεί ένα άλλο παραμετρικό interface τότε μπορούμε να πούμε ότι τα δύο interfaces διατηρούν την σχέση κληρονομικότητας ΜΟΝΟ αν ο παραμετρικός τύπος που χρησιμοποιούν είναι κοινός. Για παράδειγμα,​ η παρακάτω παραμετρική σχέση υποδηλώνει κληρονομικότητα ΜΟΝΟ για παραμέτρους ιδίου τύπου Οι σχέσεις κληρονομικότητας μεταξύ παραμετρικών τύπων μπορούν να οριστούν ως εξής. Αν ένα παραμετρικό interface κληρονομεί ένα άλλο παραμετρικό interface τότε μπορούμε να πούμε ότι τα δύο interfaces διατηρούν την σχέση κληρονομικότητας ΜΟΝΟ αν ο παραμετρικός τύπος που χρησιμοποιούν είναι κοινός. Για παράδειγμα,​ η παρακάτω παραμετρική σχέση υποδηλώνει κληρονομικότητα ΜΟΝΟ για παραμέτρους ιδίου τύπου
 <code java> <code java>
-  Collection<​E> ​               Collection<​String> ​               Collection<​String>+  Collection<​E> ​               Collection<​String> ​               Collection<​Number>
       |                               ​| ​                               Χ       |                               ​| ​                               Χ
       v          π.χ. ​                ​v ​           όχι όμως και ​       v       v          π.χ. ​                ​v ​           όχι όμως και ​       v
Line 29: Line 29:
 Αντίστοιχα,​ αν μία παραμετρική κλάση κληρονομεί μία άλλη παραμετρική κλάση τότε μπορούμε να πούμε ότι οι δύο κλάσεις διατηρούν την σχέση κληρονομικότητας ΜΟΝΟ αν ο παραμετρικός τύπος που χρησιμοποιούν είναι κοινός. Δείτε το παρακάτω παράδειγμα Αντίστοιχα,​ αν μία παραμετρική κλάση κληρονομεί μία άλλη παραμετρική κλάση τότε μπορούμε να πούμε ότι οι δύο κλάσεις διατηρούν την σχέση κληρονομικότητας ΜΟΝΟ αν ο παραμετρικός τύπος που χρησιμοποιούν είναι κοινός. Δείτε το παρακάτω παράδειγμα
 <code java> <code java>
-  HashSet<​E> ​               HashSet<​String> ​                  ​HashSet<​String>+  HashSet<​E> ​               HashSet<​String> ​                  ​HashSet<​Number>
       |                          |                                  Χ       |                          |                                  Χ
       v          π.χ. ​           v             ​όχι όμως και ​        v       v          π.χ. ​           v             ​όχι όμως και ​        v
Line 37: Line 37:
 Τέλος, αν μία παραμετρική κλάση υλοποιεί ένα παραμετρικό interface τότε μπορούμε να πούμε ότι το interface και η κλάση διατηρούν σχέση κληρονομικότητας ΜΟΝΟ αν ο παραμετρικός τύπος που χρησιμοποιούν είναι κοινός. ​ Τέλος, αν μία παραμετρική κλάση υλοποιεί ένα παραμετρικό interface τότε μπορούμε να πούμε ότι το interface και η κλάση διατηρούν σχέση κληρονομικότητας ΜΟΝΟ αν ο παραμετρικός τύπος που χρησιμοποιούν είναι κοινός. ​
 <code java> <code java>
-    List<​E> ​                  ​List<​String> ​                     List<String>+    List<​E> ​                  ​List<​String> ​                     List<Number>
       |           ​π.χ. ​            ​| ​          ​όχι όμως και ​        X       |           ​π.χ. ​            ​| ​          ​όχι όμως και ​        X
       v                            v                                V       v                            v                                V
java/generics_inheritance.txt · Last modified: 2016/02/26 11:15 (external edit)