Ruby之旅(四) 类的继承

直接上代码
Rectangle.rb

class  Rectangle
  attr_accessor :width
  attr_accessor :height
  
  
def  initialize(wdth, hgt)
    @width 
=  wdth
    @height 
=  hgt
  end
  
  
def  area()
    
return  @width  *  @height
  end
  
  
def   + (addRectangle)
    
return  area()  +  addRectangle.area()
  end
end


Square.rb

require  " Rectangle "   #  or require "Rectangle.rb"

class  Square  <  Rectangle
  
def  initialize(size)
    @width 
=  size
    @height 
=  size
  end
end

=  Square.new( 2 )
puts s.area 
#  output 4


我们可以看到Square继承了Rectangle类,并且拥有新的initalize方法。
这样 可以记住两个东西 一个是继承的符号是<,另一个是require方法可以包含另外的ruby源文件。

在ruby中,可以把方法的定义放在class外面,比如

def  fell?()
  puts 
" I fell fine. "
end
fell?()

这种写法好像是全局函数,其实并不是全局函数,而是给基类Object增加了一个fell?方法,因为任何类都从Object继承而来,所以这个时候任何类都将支持这个fell?方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值