Project1
标题:
[脚本初学]Super是什么?干什么用的?
[打印本页]
作者:
774741359
时间:
2013-2-8 14:21
标题:
[脚本初学]Super是什么?干什么用的?
脚本中很常见这个词 但是又不知道具体含义....请各大神明示。
作者:
Sion
时间:
2013-2-8 15:03
本帖最后由 Sion 于 2013-2-8 15:06 编辑
方法的重载超类中已定义的方法在子类中再次被定义称为重载。在子类方法中调用超类相同方法的情况下,要使用关键词 super。
class Hahaha
def laugh(x)
return "哈" * x
end
end
class Wahaha < Hahaha
def laugh(x)
return "哇" + super
end
end
man = Wahaha.new
p man.laugh(4) # => "哇哈哈哈哈"
复制代码
上述示例是,对新建实例调用 Wahaha 类的 laugh 方法,其中 super 能调用其超类 Hahaha 类的 laugh 方法。那么,最后一行调用 laugh 方法可以理解为 "哇" + "哈" * 4,于是输出结果就为 "哇哈哈哈哈"。
以上内容完全引用自 F1 {:2_259:} 使用此脚本造成的任何后果,本人概不承担任何责任
作者:
晴兰
时间:
2013-2-8 15:06
提示:
作者被禁止或删除 内容自动屏蔽
作者:
zhangbanxian
时间:
2013-2-8 19:34
ls都说得很清楚了,再补充一点吧- -b
特殊类的super就是其元类
class A
def says(sth)
p "watashi ha #{sth}"
end
end
object = A.new
class << object
def says(sth)
super
end
end
object.says("huaka") #=> "watashi ha huaka"
复制代码
另外,注意super会将传入方法的参数原封不动地传给父类同名方法,如果遇到父类参数不同的情况,务必写明参数,例如父类方法没有参数,但子类有
必须写成super()而非super
作者:
774741359
时间:
2013-2-9 21:01
多谢各位...by the way
祝各位新年快乐
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1