This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
java:type_casting [2016/02/15 05:00] gthanos |
java:type_casting [2021/04/05 15:09] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Ρητές (explicit) και άρρητες (implicit) μετατροπές τύπων ====== | ||
| - | |||
| - | Σε συνέχεια του παραδείγματος κληρονομικότητας της προηγούμενης ενότητας μπορούμε να γράψουμε | ||
| - | |||
| - | <code java> | ||
| - | MountainBike myBike = new MountainBike(); | ||
| - | </ | ||
| - | |||
| - | Από την παραπάνω δήλωση η μεταβλητή '' | ||
| - | |||
| - | <code java> | ||
| - | Bicycle myBicycle = myBike; | ||
| - | //ή | ||
| - | Βicycle yourBicycle = new MountainBike(); | ||
| - | </ | ||
| - | |||
| - | Την παραπάνω ανάθεση την ονομάζουμε //Implicit Casting// διότι αναθέτουμε μία μεταβλητή ενός τύπου δεδομένων ('' | ||
| - | |||
| - | Ας δοκιμάσουμε το ανάποδο παράδειγμα τώρα | ||
| - | |||
| - | <code java> | ||
| - | Bycycle myBicycle = new Bicycle(); | ||
| - | MountainBike myBike = myBicycle; | ||
| - | </ | ||
| - | |||
| - | Σε αυτή την περίπτωση ο compiler διαμαρτύρεται, | ||
| - | |||
| - | <code java> | ||
| - | Bycycle myBicycle = new Bicycle(); | ||
| - | MountainBike myBike = (MountainBike) myBicycle; | ||
| - | </ | ||
| - | |||
| - | Εδώ ενημερώνουμε τον compiler ότι η μεταβλητή '' | ||
| - | |||
| - | Ένας πιο ασφαλής τρόπος για να επαναλάβουμε τον παραπάνω κώδικα, | ||
| - | |||
| - | <code java> | ||
| - | Bycycle myBicycle = new Bicycle(); | ||
| - | MountainBike myBike; | ||
| - | if (myBicycle instanceof MountainBike) { | ||
| - | myBike = (MountainBike)myBicycle; | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | ===== Κριτήρια χρήσης της κληρονομικότητας ως εργαλείο ανάπτυξης λογισμικού ===== | ||
| - | |||
| - | Ας επανέλθουμε στο παράδειγμα του ορθογωνίου παραλληλογράμμου το οποίο έχουμε συναντήσει αρκετές φορές στο παρελθόν. | ||
| - | |||