Project1

标题: 求解super [打印本页]

作者: 风若·飘絮    时间: 2013-4-29 12:32
标题: 求解super
本帖最后由 风若·飘絮 于 2013-4-29 12:34 编辑

看默认脚本时,看到window_base 定义完初始函数后就用了super(),瞬间晕了。。

后来看到下面的函数,super还可以不加括号单独用,,,又晕了。。

求解super介绍和用法


还有个问题,变量名前加self,对变量会有什么影响?
作者: 无脑之人    时间: 2013-4-29 12:47
super是调用父类的同名方法嘛……super()代表无参数的调用,super代表本方法的所有参数原封不动的传递给该方法在调用
至于self……那不能算变量……应该算是调用一个方法然后返回了一个变量
作者: eve592370698    时间: 2013-5-22 22:23
标题: 我来具体说明吧
本帖最后由 eve592370698 于 2013-5-23 09:28 编辑

RUBY 代码复制
  1. class AAA
  2. def pp
  3. p "蜡笔小新"
  4. end
  5. end

然后咱们做一个子类
RUBY 代码复制
  1. class ABC < AA
  2.  
  3. end

表示ABC这个类继承了AA,然后可以设置这四种情况
定义方法 不定义空白带着
RUBY 代码复制
  1. def pp
  2. p "风间"
  3. end
RUBY 代码复制
  1. def pp
  2. super()
  3. p "风间"
  4. end
RUBY 代码复制
  1. def pp
  2. p "风间"
  3. super()
  4. end
运行
  1. ABC.new.pp
复制代码
结果
蜡笔小新风间 蜡笔小新
风间
风间
蜡笔小新
原因 直接使用父类方法 父类方法内容完全改变 在p “风间”之前执行父类的pp方法 在p “风间” 之后执行父类pp这个方法





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1