受保护和私有方法之间的区别

时间:2014-10-20 12:03:37

标签: ruby oop inheritance private protected

在下面的程序中,子类方法调用父类的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)相比,这些方法的用途是什么?

0 个答案:

没有答案