由于Ruby并没有所谓的引用的类型区别,这就导致了很多时候,我们说子类实现父类的抽象方法(即父类中实现为抛出NotImplementedError的方法),可以看到很多代码,将这些方法定义为了private方法,其实定义为protected与private,在Ruby这样的语言里,并没有什么区别。
例如:
class Abc def test() x1() end private def x1() raise NotImplementedError.new("未实现") end end class Dd < Abc private def x1() puts "Dd方法实现了x1方法" end end Dd.new().test()
因为在Ruby中,它终将只会调用指向对象包含的方法