在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
类的实例,并调用了继承自父类的方法以及子类中覆盖和新添加的方法。