溫馨提示×

Ruby繼承機制如何實現(xiàn)類擴展

小樊
81
2024-11-06 07:32:42
欄目: 編程語言

在Ruby中,繼承是通過class關(guān)鍵字和extends方法來實現(xiàn)的。子類通過extends方法繼承父類的屬性和方法。這樣,子類可以訪問父類的公共和受保護方法,同時還可以覆蓋或添加新的方法。

以下是一個簡單的示例,展示了如何在Ruby中實現(xiàn)類擴展:

# 定義父類
class Parent
  def initialize(name)
    @name = name
  end

  def say_hello
    puts "Hello, my name is #{@name}."
  end

  def say_goodbye
    puts "Goodbye, my name is #{@name}."
  end
end

# 定義子類,并通過`extends`方法繼承父類
class Child < Parent
  # 在子類中覆蓋父類的方法
  def say_hello
    puts "Hi, my name is #{@name}."
  end

  # 添加新的方法
  def say_how_are_you?
    puts "I'm fine, thank you! My name is #{@name}."
  end
end

# 創(chuàng)建子類的實例
child = Child.new("John")

# 調(diào)用繼承自父類的方法
child.say_hello # 輸出: Hi, my name is John.
child.say_goodbye # 輸出: Goodbye, my name is John.

# 調(diào)用子類中覆蓋的方法
child.say_hello # 輸出: Hi, my name is John.

# 調(diào)用子類中添加的新方法
child.say_how_are_you? # 輸出: I'm fine, thank you! My name is John.

在這個示例中,我們定義了一個名為Parent的父類,它具有兩個方法:say_hellosay_goodbye。然后,我們定義了一個名為Child的子類,并通過extends方法繼承了Parent類。在子類中,我們覆蓋了say_hello方法,并添加了一個新的方法say_how_are_you?。最后,我們創(chuàng)建了一個Child類的實例,并調(diào)用了繼承自父類的方法以及子類中覆蓋和新添加的方法。

0