温馨提示×

Ruby多态性如何实现方法重载

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

在 Ruby 中,多态性是通过方法重写(method overriding)实现的。方法重写允许子类继承父类的方法,并在子类中根据需要重写这些方法。这使得子类可以以不同的方式实现相同的方法,从而实现多态性。

以下是一个简单的示例,展示了如何在 Ruby 中实现方法重载:

class Animal
  def speak
    puts "The animal makes a sound"
  end
end

class Dog < Animal
  # 方法重写:在子类中重写父类的 speak 方法
  def speak
    puts "The dog barks"
  end
end

class Cat < Animal
  # 方法重写:在子类中重写父类的 speak 方法
  def speak
    puts "The cat meows"
  end
end

animals = [Dog.new, Cat.new]

animals.each do |animal|
  animal.speak
end

在这个示例中,我们定义了一个名为 Animal 的基类,其中包含一个名为 speak 的方法。然后,我们创建了两个子类:DogCat,它们分别继承自 Animal 类。在子类中,我们重写了 speak 方法,以提供不同的行为。

当我们遍历 animals 数组并调用每个动物的 speak 方法时,Ruby 会根据对象的实际类型(DogCat)动态地选择要调用的方法。这就是 Ruby 中的多态性。

0