温馨提示×

Ruby多态性怎样实现接口统一

小樊
81
2024-11-06 07:42:41
栏目: 编程语言

在Ruby中,多态性可以通过定义一个共同的接口来实现。接口是一个抽象的类,它定义了一组方法,这些方法可以被其他类实现或继承。这样,不同的类可以实现相同的接口,从而提供相同的方法调用,实现接口统一。

以下是一个简单的示例,展示了如何使用Ruby实现接口统一:

  1. 首先,定义一个接口类Drawable,包含一个draw方法:
class Drawable
  def draw
    raise NotImplementedError, "请在子类中实现此方法"
  end
end
  1. 然后,创建两个实现了Drawable接口的类CircleRectangle
class Circle < Drawable
  def initialize(radius)
    @radius = radius
  end

  def draw
    puts "绘制一个半径为 #{@radius} 的圆"
  end
end

class Rectangle < Drawable
  def initialize(width, height)
    @width = width
    @height = height
  end

  def draw
    puts "绘制一个宽度为 #{@width},高度为 #{@height} 的矩形"
  end
end
  1. 最后,创建一个函数draw_shape,接受一个Drawable对象作为参数,并调用其draw方法:
def draw_shape(shape)
  shape.draw
end

现在,你可以使用draw_shape函数来绘制不同的形状,而不需要关心它们的具体实现:

circle = Circle.new(5)
rectangle = Rectangle.new(4, 6)

draw_shape(circle) # 输出:绘制一个半径为 5 的圆
draw_shape(rectangle) # 输出:绘制一个宽度为 4,高度为 6 的矩形

通过这种方式,Ruby中的多态性实现了接口统一,使得不同的类可以使用相同的接口进行操作。

0