Ωστόσο, εάν αναφέρεστε στην έννοια της κληρονομικότητας και των μεθόδων κλήσης από μια γονική κλάση, η Ruby παρέχει τη λέξη-κλειδί «super». Δείτε πώς λειτουργεί:
Κατανόηση του "super"
* Κληρονομικότητα: Στο Ruby, μπορείτε να δημιουργήσετε κλάσεις που κληρονομούν από άλλες κλάσεις. Αυτό σημαίνει ότι η θυγατρική τάξη αποκτά αυτόματα πρόσβαση στις μεθόδους και τα χαρακτηριστικά της γονικής κλάσης.
* Μέθοδοι παράκαμψης: Μπορείτε να παρακάμψετε μεθόδους από τη γονική κλάση στη θυγατρική τάξη. Αυτό σημαίνει ότι η θυγατρική τάξη θα χρησιμοποιήσει τη δική της υλοποίηση της μεθόδου όταν καλείται.
* "super" Λέξη-κλειδί: Εάν θέλετε να καλέσετε τη μέθοδο της γονικής κλάσης εντός της παρακαμφθείσας μεθόδου στη θυγατρική κλάση, χρησιμοποιείτε τη λέξη-κλειδί «super».
Παράδειγμα
```ρουμπίνι
όχημα κατηγορίας
Def αρχικοποίηση (επωνυμία)
@brand =μάρκα
τέλος
def start
βάζει "Εκκίνηση #{@brand} όχημα..."
τέλος
τέλος
κατηγορίας Αυτοκίνητο <Όχημα
def start
σούπερ
βάζει "Ο κινητήρας ξεκίνησε. Έτοιμος για οδήγηση!"
τέλος
τέλος
my_car =Car.new ("Toyota")
my_car.start
```
Επεξήγηση:
1. Ορίζουμε μια κλάση `Vehicle` με μέθοδο `start`.
2. Δημιουργούμε μια κατηγορία `Car` που κληρονομείται από το `Vehicle`.
3. Η κλάση «Car» παρακάμπτει τη μέθοδο «start», αλλά καλεί το «super» μέσα για να εκτελέσει τη μέθοδο «start» από τη μητρική κατηγορία «Vehicle».
4. Όταν δημιουργούμε ένα αντικείμενο «Car» και καλούμε «start», εκτελούνται και οι δύο μέθοδοι «start» του «Vehicle» και «Start» του «Car».
Βασικά σημεία:
* Το `super` καλεί την ομώνυμη μέθοδο στη γονική κλάση.
* Μπορείτε να μεταβιβάσετε ορίσματα στο `super` για να τα μεταβιβάσετε στη μέθοδο του γονέα.
* Εάν δεν χρησιμοποιείτε το "super", η εφαρμογή της μεθόδου από τη θυγατρική τάξη θα παρακάμψει πλήρως την έκδοση του γονέα.
Εάν έχετε περισσότερες ερωτήσεις σχετικά με την κληρονομιά ή το «super» στο Ruby, μη διστάσετε να ρωτήσετε!