User Tools

Site Tools


java:type_casting

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
java:type_casting [2021/04/05 16:08] gthanosjava:type_casting [Unknown date] (current) – external edit (Unknown date) 127.0.0.1
Line 19: Line 19:
 Αν θέλουμε να ζωγραφίσουμε τον κώδικα του προηγούμενου παραδείγματος μπορούμε να το κάνουμε όπως στο παρακάτω σχήμα. Παρατηρήστε ότι η μεταβλητές **r1** και **r2** δείχνουν στο ίδιο αντικείμενο. Η διαφορά είναι ότι η **r2** αν και δείχνει σε ένα αντικείμενο τύπου **Rectangle**, έχει πρόσβαση μόνο στο τμήμα του αντικειμένου που είναι του τύπου **BasicRectangle**. Ο λόγος για αυτόν τον περιορισμό είναι ότι λόγω του τύπου της ο //compiler// υποθέτει ότι δείχνει σε ένα αντικείμενο τύπου **BasicRectangle** με αποτέλεσμα να μην επιτρέπει την πρόσβαση στα πεδία και τις μεθόδους που δεν ανήκουν στην κλάση **BasicRectangle**, αλλά στην υποκλάση. Αν θέλουμε να ζωγραφίσουμε τον κώδικα του προηγούμενου παραδείγματος μπορούμε να το κάνουμε όπως στο παρακάτω σχήμα. Παρατηρήστε ότι η μεταβλητές **r1** και **r2** δείχνουν στο ίδιο αντικείμενο. Η διαφορά είναι ότι η **r2** αν και δείχνει σε ένα αντικείμενο τύπου **Rectangle**, έχει πρόσβαση μόνο στο τμήμα του αντικειμένου που είναι του τύπου **BasicRectangle**. Ο λόγος για αυτόν τον περιορισμό είναι ότι λόγω του τύπου της ο //compiler// υποθέτει ότι δείχνει σε ένα αντικείμενο τύπου **BasicRectangle** με αποτέλεσμα να μην επιτρέπει την πρόσβαση στα πεδία και τις μεθόδους που δεν ανήκουν στην κλάση **BasicRectangle**, αλλά στην υποκλάση.
  
-{{:java:implicit-casting.png|}}+{{  :java:implicit-casting.png  |}}
  
 === Ρητή μετατροπή === === Ρητή μετατροπή ===
java/type_casting.1617638917.txt.gz · Last modified: 2021/04/05 15:08 (external edit)