This shows you the differences between two versions of the page.
Next revision | Previous revision Next revision Both sides next revision | ||
java:super_operator [2015/02/13 14:15] gthanos created |
java:super_operator [2016/02/26 11:15] 127.0.0.1 external edit |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Ο τελεστής super ====== | ====== Ο τελεστής super ====== | ||
- | Σε αναλογία με τον τελεστή **this**, ο τελεστής **super** δείχνει στο αντικείμενο της γονικής κλάσης. Προϋπόθεση για την χρήση του τελεστή **super** είναι να υφίσταται γονική κλάση μέσω της διαδικασίας της κληρονομικότητας. | + | Σε προηγούμενη παράγραφο είδαμε την χρήση του τελεστή **[[java:this_operator |this]]**. Σε αναλογία με τον τελεστή **this**, ο τελεστής **super** δείχνει στο αντικείμενο της γονικής κλάσης. Προϋπόθεση για την χρήση του τελεστή **super** είναι να υφίσταται γονική κλάση μέσω της διαδικασίας της κληρονομικότητας. |
===== Πρόσβαση στους κατασκευαστές της γονικής κλάσης μέσω του τελεστή super ===== | ===== Πρόσβαση στους κατασκευαστές της γονικής κλάσης μέσω του τελεστή super ===== | ||
Line 86: | Line 86: | ||
public MountainBike(int startHeight, int startCadence, | public MountainBike(int startHeight, int startCadence, | ||
int startSpeed, int startGear) { | int startSpeed, int startGear) { | ||
- | super(startCadence, startSpeed, startGear); | + | //super(startCadence, startSpeed, startGear); |
super.cadence = startCadence; | super.cadence = startCadence; | ||
super.speed = startSpeed; | super.speed = startSpeed; | ||
Line 104: | Line 104: | ||
Συμπερασματικά, ο τελεστής **super** δείχνει στο αντικείμενο της γονικής κλάσης και χρησιμοποιείται για να προσπελαστούν δεδομένα ή μεταβλητές που ανήκουν στο τμήμα του τρέχοντος αντικειμένου που αφορά την γονική κλάση. | Συμπερασματικά, ο τελεστής **super** δείχνει στο αντικείμενο της γονικής κλάσης και χρησιμοποιείται για να προσπελαστούν δεδομένα ή μεταβλητές που ανήκουν στο τμήμα του τρέχοντος αντικειμένου που αφορά την γονική κλάση. | ||
- | <WRAP important>Απαραίτητη προϋποθεση για την χρήση του τελεστη **super** είναι τα παιδιά της γονικής κλάσης να έχουν πρόσβαση στα δεδομένα ή τις μεθόδους της γονικής κλάσης. Για να γίνει αυτό, τα πεδία και οι μέθοδοι της γονικής κλάσης που θέλουμε να προσπελάσουμε δεν θα πρέπει να έχουν των προσδιοριστή πρόσβασης **private**. Περισσότερα για τους προσδιοριστές πρόσβασης θα δούμε παρακάτω, όταν θα έχουμε εξήγήσει την φιλοσοφία των πακέτων στην γλώσσα JAVA. | + | <WRAP important 80% center round>Απαραίτητη προϋποθεση για την χρήση του τελεστη **super** είναι τα παιδιά της γονικής κλάσης να έχουν πρόσβαση στα δεδομένα ή τις μεθόδους της γονικής κλάσης. Για να γίνει αυτό, τα πεδία και οι μέθοδοι της γονικής κλάσης που θέλουμε να προσπελάσουμε δεν θα πρέπει να έχουν των προσδιοριστή πρόσβασης **private** ή δεν θα πρέπει να έχουν προσδιοριστεί **package private** και να ανήκουν σε διαφορετικά πακέτα. |
</WRAP> | </WRAP> | ||
+ | |||
+ | |Προηγούμενο: [[ :java:multiple_inheritance | Κληρονομικότητα πολλαπλών γονικών κλάσεων ]] | Επόμενο: [[ :java:polymorphism | Στατικός και Δυναμικός Πολυμορφισμός ]]| |