在下面的程序中,子类方法调用父类的private和protected方法。
class Parent
private
def private_method
'Private Method'
end
protected
def protected_method
'Protected Method'
end
end
class Child < Parent
def get_parent_name
puts private_name
puts protected_method
puts Parent.new.protected_method
puts Parent.new.private_method #Throws an error
end
end
obj = Child.new
obj.get_parent_name
该行
puts Parent.new.private_method #Throws an error
抛出错误。我得到的差异是使用显式接收器无法访问私有方法,但受保护的方法可以。如果这是private和protected方法之间的唯一区别,并且两者都可以在子类中调用,那么与其他语言(如java)相比,这些方法的用途是什么?