Ruby/Przedefiniowywanie metod: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Szymon wro (dyskusja | edycje)
m Ruby/Przedefiniowanie metod przeniesiono do Ruby/Przedefiniowywanie metod: Powinno być chyba jednak w formie niedokonanej.
Szymon wro (dyskusja | edycje)
Linia 1:
== PrzedefiniowaniePrzedefiniowywanie metod ==
 
W podklasie możemy zmieniaćzmienić zachowanie instancji poprzez przedefiniowanie metod z nadklasy.
 
<pre>
Linia 20:
I'm a person.
nil
ruby> class Student1 < Human
| def identify
| puts "I'm a student."
Linia 31:
</pre>
 
Przypuszczalnie moglimoglibyśmy byśmy raczejtylko ulepszyć metodę <tt>identify</tt> z nadklasy niżzamiast całkowicie ją podmieniać. Do tego celu możemy użyć słowa kluczowego <tt>super</tt>.
 
<pre>
Linia 50:
 
<pre>
ruby> class Dishonest < Human
| def train_toll(age)
| super(11) # wechcemy wantskromną a cheap fare.opłatę
| end
| end
Linia 60:
nil
 
ruby> class Honest < Human
| def train_toll(age)
| super(age) # pass theprzekazujemy argument we werektóry givendostaliśmy
| end
| end