您好,欢迎来到知库网。
搜索
您的当前位置:首页Ruby类结构总结

Ruby类结构总结

来源:知库网
A # 没定义A类前调用,报错 NameError: uninitialized constant A
class A
end
a = A.new
a.class # => A
A.class # => Class

说明当我们定义了A类,A就成了一个实例
二、Class的父类是Module,Class实例有一个superclass方法,返回这个类的父类

Class.superclass # => Module,表示Class的父类是Module
A.superclass # => Object, 表示A的父类是Object

三、先看一段代码

module B
  def hi
    p "hi from B"
  end
end
class A
  def hi
    super
    p "hi from A"
  end
end
a = A.new
a.hi # => hi from B \n hi from A 
a.ancestors # => [A, B, Object, Kernel, BasicObject](下面把这个数组称为方法链)

在其他语言中,一般我们认为super就是调用父类同名方法。在ruby我们可以这样认为,super是调用方法链中的第一个同名方法。

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

热门图文

Copyright © 2019-2025 zicool.com 版权所有 湘ICP备2023022495号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务