fork download
  1. class Cal
  2. attr_reader :v1, :v2
  3. attr_writer :v1
  4. def initialize(v1,v2)
  5. @v1 = v1
  6. @v2 = v2
  7. end
  8. def add()
  9. return @v1+@v2
  10. end
  11. def subtract()
  12. return @v1-@v2
  13. end
  14. def setV1(v)
  15. if v.is_a?(Integer)
  16. @v1 = v
  17. end
  18. end
  19. def getV1()
  20. return @v1
  21. end
  22. end
  23. class CalMultiply < Cal
  24. def multiply()
  25. return @v1*@v2
  26. end
  27. end
  28. class CalDivide < CalMultiply
  29. def divide()
  30. return @v1/@v2
  31. end
  32. end
  33. c1 = CalMultiply.new(10,10)
  34. p c1.add()
  35. p c1.multiply()
  36. c2 = CalDivide.new(20, 10)
  37. p c2, c2.add()
  38. p c2, c2.multiply()
  39. p c2, c2.divide()
  40.  
Success #stdin #stdout 0.02s 7416KB
stdin
Standard input is empty
stdout
20
100
#<CalDivide:0x9285970 @v1=20, @v2=10>
30
#<CalDivide:0x9285970 @v1=20, @v2=10>
200
#<CalDivide:0x9285970 @v1=20, @v2=10>
2