Arv er kernen i objektorienteret programmering. Opbygning klasse strukturer gør mindre programmer nemme og store programmer muligt. I Ruby er arv bruges til at skabe en relation mellem klasser , der kan bruges i din kode . Når en klasse er en type af en anden klasse , kan du bruge arv til at gøre "underordnede klasser" . For eksempel kan du have en Shape klasse. Gør barn klasser i Shape klassen , ligesom en cirkel eller en firkant klasse betyder en metode, der tager en Shape argument kunne også tage en cirkel som en form for form. Instruktioner
Brug Arv i Ruby
1
Start med en base ( eller "super" ) klasse. Det følgende eksempel bruger en klasse ved navn Microwave : class Microwavedef put_food_in (fødevarer) @ food = foodenddef take_food_outfood = @ food @ food = nilreturn foodenddef turn_onputs "Microwave er på" enden def turn_off sætter " Microwave er slukket " endend
2
Skriv en nedarvet klasse erklæring. Dette er det samme som en normal klasse erklæring , men tilføjer "class TimedMicrowave ende
3
Tilføj nye metoder til klassen. Klassen vil have alle de metoder i superklassen , som . godt yderligere metoder, du tilføjer du kan også tilføje nye medlemslande variabler og attr_ * Adgangsfunktioner : class TimedMicrowave attr_reader : timerdef set_timer ( sekunder) @ timer = secondsend def clear_timer @ timer = 0endend
4
Override metoder i superklassen med nye metoder . da i det foregående eksempel en timer sattes til mikrobølgeovn, en turn_on metode, der vil automatisk slå mikrobølgeovn off kan nu gennemføres . blot definere en metode med samme navn som den metode i superklassen . når det hedder , vil metoden i barnets klasse tilsidesætter metode fra superklassen Her kan enhver kode, der forventer at se et Microwave objekt bruge en TimedMicrowave objekt: . class TimedMicrowave attr_reader : timerdef set_timer ( sekunder) @ timer = secondsenddef clear_timer @ timer = 0enddef turn_onwhile @ timer> 0puts "Microwave er tændt. # { @ timer } sekund ( er) tilbage " @ timer - . = 1sleep 1end # Vi er færdig madlavning, drej mikrobølgeovnen offturn_offendend