面试题答案
一键面试class Animal
attr_reader :name
def initialize(name)
@name = name
end
def speak
puts "#{@name} makes a sound."
end
end
class Dog < Animal
def speak
puts "#{@name} barks."
end
end
# 使用示例
dog = Dog.new("Buddy")
puts dog.name # 读取name属性
dog.speak # 调用修改后的speak方法
在上述代码中:
- 在
Animal
类中,使用attr_reader :name
定义了只读属性@name
,这样Dog
类只能读取@name
属性。 Animal
类的speak
方法被子类Dog
重写,从而修改了speak
方法的行为。