由于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中,它终将只会调用指向对象包含的方法