关于Ruby中多态的一些说明

浏览:1948 发布日期:2018-11-27 09:26:30

关于Ruby中多态的一些说明

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