This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
|
java:type_casting [2021/03/05 16:00] gthanos |
java:type_casting [2021/04/05 16:08] gthanos |
||
|---|---|---|---|
| Line 7: | Line 7: | ||
| </ | </ | ||
| - | Από την παραπάνω δήλωση η μεταβλητή '' | + | Από την παραπάνω δήλωση η μεταβλητή '' |
| <code java> | <code java> | ||
| Line 16: | Line 16: | ||
| Την παραπάνω ανάθεση την ονομάζουμε άρρητη μετατροπή (//implicit casting//) διότι αναθέτουμε ένα αντικείμενο του κληρονομούμενου τύπου δεδομένων ('' | Την παραπάνω ανάθεση την ονομάζουμε άρρητη μετατροπή (//implicit casting//) διότι αναθέτουμε ένα αντικείμενο του κληρονομούμενου τύπου δεδομένων ('' | ||
| + | |||
| + | Αν θέλουμε να ζωγραφίσουμε τον κώδικα του προηγούμενου παραδείγματος μπορούμε να το κάνουμε όπως στο παρακάτω σχήμα. Παρατηρήστε ότι η μεταβλητές **r1** και **r2** δείχνουν στο ίδιο αντικείμενο. Η διαφορά είναι ότι η **r2** αν και δείχνει σε ένα αντικείμενο τύπου **Rectangle**, | ||
| + | |||
| + | {{: | ||
| + | |||
| + | === Ρητή μετατροπή === | ||
| Ας δοκιμάσουμε το ανάποδο παράδειγμα τώρα | Ας δοκιμάσουμε το ανάποδο παράδειγμα τώρα | ||
| <code java> | <code java> | ||
| - | BasicRectangle r3 = new BasicRectangle(100,200); | + | BasicRectangle r3 = new Rectangle(100,200,5,-5); |
| Rectangle r4 = r3; | Rectangle r4 = r3; | ||
| </ | </ | ||
| Line 27: | Line 33: | ||
| <code java> | <code java> | ||
| - | BasicRectangle r3 = new BasicRectangle(100, | + | BasicRectangle r3 = new Rectangle(100,200,5,-5); |
| - | Rectangle r4 = (BasicRectangle)r3; | + | Rectangle r4 = (Rectangle)r3; |
| </ | </ | ||
| Line 36: | Line 42: | ||
| <code java> | <code java> | ||
| - | BasicRectangle r3 = new BasicRectangle(100, | + | BasicRectangle r3 = new Rectangle(100,200,5,-5); |
| - | Rectangle r4 = null; | + | Rectangle r4; |
| if (r3 instanceof Rectangle) { | if (r3 instanceof Rectangle) { | ||
| r4 = (Rectangle)r3; | r4 = (Rectangle)r3; | ||