Arv er kjernen i objektorientert programmering. Bygge klasse strukturer gjør mindre programmer enkle , og store programmer mulig. I Ruby er arv brukes til å skape en relasjon mellom klasser som kan brukes i koden. Når en klasse er en type av en annen klasse , kan du bruke arv å lage " barn-klasser " . For eksempel kan du ha en Shape klassen . Å gjøre barn-klasser i Shape klassen , som en sirkel eller firkant klasse , betyr en metode som tar en Shape argument kan også ta en sirkel som en type form. Instruksjoner
Bruk Arv i Ruby
en
Start med en base ( eller " super" ) klasse. Følgende eksempel bruker en klasse kalt Mikrobølgeovn : class Microwavedef put_food_in (mat ) @ mat = foodenddef take_food_outfood = @ mat @ mat = nilreturn foodenddef turn_onputs "Microwave er på " end def turn_off setter "Microwave er off" SluttSlutt
2
Skriv en arvelig klasse uttalelse. Dette er det samme som en vanlig klasse uttalelse, men legger til "class TimedMicrowave slutten
3
Legg til nye metoder for klassen. Klassen vil ha alle metodene i superklassen , som . vel noen flere metoder du legger du kan også legge til nye medlem variabler og attr_ * accessors : class TimedMicrowave attr_reader : timerdef set_timer ( sekunder ) @ tidtaker = secondsend def clear_timer @ tidtaker = 0endend
4
overstyring metoder i superklassen med nye metoder . Siden i forrige eksempel et tidsur ble lagt inn i mikrobølgeovnen , en turn_on metode som automatisk slår mikrobølgeovn off kan nå bli gjennomført. Bare definere en metode med samme navn som metode i superklassen . når det heter, vil metoden i barnets klasse overstyre metoden fra superklassen Her kan noen kode som forventer å se en mikrobølgeovn objekt bruke en TimedMicrowave objekt: . klassen TimedMicrowave attr_reader : timerdef set_timer ( sekunder ) @ tidtaker = secondsenddef clear_timer @ timer = 0enddef turn_onwhile @ tidtaker > 0puts "Microwave er på. # { @ tidtaker } sekund ( er) igjen " @ timer - . = 1sleep 1end # Vi er ferdig matlaging, slå mikrobølgeovn offturn_offendend