在Ruby中,繼承是通過class
關鍵字和extends
方法來實現的。子類通過extends
方法繼承父類的屬性和方法。這樣,子類可以訪問父類的公共和受保護方法,同時還可以覆蓋或添加新的方法。
以下是一個簡單的示例,展示了如何在Ruby中實現類擴展:
# 定義父類
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
# 創建子類的實例
child = Child.new("John")
# 調用繼承自父類的方法
child.say_hello # 輸出: Hi, my name is John.
child.say_goodbye # 輸出: Goodbye, my name is John.
# 調用子類中覆蓋的方法
child.say_hello # 輸出: Hi, my name is John.
# 調用子類中添加的新方法
child.say_how_are_you? # 輸出: I'm fine, thank you! My name is John.
在這個示例中,我們定義了一個名為Parent
的父類,它具有兩個方法:say_hello
和say_goodbye
。然后,我們定義了一個名為Child
的子類,并通過extends
方法繼承了Parent
類。在子類中,我們覆蓋了say_hello
方法,并添加了一個新的方法say_how_are_you?
。最后,我們創建了一個Child
類的實例,并調用了繼承自父類的方法以及子類中覆蓋和新添加的方法。