Next Previous Contents

31. <4.2.2>: Arv

  1| # Fortsetter der vi slapp...
  2| require 'klasse2.rb' 
  3| 
  4| # Arv - alle studenter er en submengde av alle personer
  5| class Student < Person
  6|   def initialize( etternavn, fornavn, alder = 0, 
  7| 		  studiested = "NTNU" )
  8|     # kall super-klassens versjon av metoden
  9|     super( etternavn, fornavn, alder )
 10|     @studiested = studiested
 11|     @karakterer = [] # Eventuelt Array.new
 12|   end
 13|   
 14|   # redefinerer Person#to_s metoden
 15|   def to_s
 16|     "#{@etternavn}, #{@fornavn} - studerer ved #{@studiested}."
 17|   end
 18| 
 19|   def ta_eksamen( karakter )
 20|     @karakterer.push karakter
 21|   end
 22| 
 23|   def karaktersnitt
 24|     sum = 0
 25|     @karakterer.each{ |karakter|
 26|       sum += karakter
 27|     }
 28|     sum.to_f / @karakterer.size
 29|   end
 30|   
 31| end
 32| 
 33| if __FILE__ == $0 # Kun når vi kjører denne filen:
 34|   flinkis = Student.new("Einstein", "Al", 128, "Mensa")
 35|   flinkis.ta_eksamen( 1.0 )
 36|   flinkis.ta_eksamen( 2.0 )
 37|   puts flinkis #=> "Einstein, Al - studerer ved Mensa."
 38|   puts flinkis.karaktersnitt #=> 1.5
 39| end

super

et alias for superklassens versjon av den metoden vi er i nå.


Next Previous Contents