查看: 2960|回复: 4

[已经解决] [脚本初学]Super是什么?干什么用的?

[复制链接]
梦石
0
星屑
100
在线时间
211 小时
注册时间
2011-8-16
回帖
246
发表于 2013-2-8 14:21:27 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
脚本中很常见这个词 但是又不知道具体含义....请各大神明示。
RPGMaker 脚本/学习交流群:143356012
头像被屏蔽
梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
回帖
1577

开拓者

发表于 2013-2-8 15:06:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
回帖
2257

贵宾

发表于 2013-2-8 15:03:17 | 显示全部楼层
本帖最后由 Sion 于 2013-2-8 15:06 编辑

方法的重载超类中已定义的方法在子类中再次被定义称为重载。在子类方法中调用超类相同方法的情况下,要使用关键词 super。
  1. class Hahaha
  2.   def laugh(x)
  3.     return "哈" * x
  4.   end
  5. end

  6. class Wahaha < Hahaha
  7.   def laugh(x)
  8.     return "哇" + super
  9.   end
  10. end

  11. man = Wahaha.new
  12. p man.laugh(4)      # => "哇哈哈哈哈"
复制代码
上述示例是,对新建实例调用 Wahaha 类的 laugh 方法,其中 super 能调用其超类 Hahaha 类的 laugh 方法。那么,最后一行调用 laugh 方法可以理解为 "哇" + "哈" * 4,于是输出结果就为 "哇哈哈哈哈"。

以上内容完全引用自 F1 {:2_259:} 使用此脚本造成的任何后果,本人概不承担任何责任

评分

参与人数 1星屑 +30 收起 理由
Luciffer + 30 塞糖

查看全部评分

回复

使用道具 举报

梦石
0
星屑
50
在线时间
270 小时
注册时间
2010-2-4
回帖
1296
发表于 2013-2-8 19:34:38 | 显示全部楼层
ls都说得很清楚了,再补充一点吧- -b
特殊类的super就是其元类
  1. class A
  2. def says(sth)
  3.   p "watashi ha #{sth}"
  4. end
  5. end
  6. object = A.new
  7. class << object
  8. def says(sth)
  9.    super
  10. end
  11. end
  12. object.says("huaka") #=> "watashi ha huaka"
复制代码
另外,注意super会将传入方法的参数原封不动地传给父类同名方法,如果遇到父类参数不同的情况,务必写明参数,例如父类方法没有参数,但子类有
必须写成super()而非super

评分

参与人数 1星屑 +50 收起 理由
Luciffer + 50 我很赞同

查看全部评分

好歹当年也当过大魔王过,orz
回复

使用道具 举报

梦石
0
星屑
100
在线时间
211 小时
注册时间
2011-8-16
回帖
246
 楼主| 发表于 2013-2-9 21:01:21 | 显示全部楼层
多谢各位...by the way
祝各位新年快乐
RPGMaker 脚本/学习交流群:143356012
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部