Project1

标题: 关于类的重新定义的问题 [打印本页]

作者: 风若·飘絮    时间: 2014-4-5 19:21
标题: 关于类的重新定义的问题
class A
xxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxx
end

然后写 class A
                    aaaaaaaaaaaaaa
             end

是覆盖原来的,还是加上新的?
作者: 你最珍贵    时间: 2014-4-5 19:47
貌似是加上新的。。自己试试不就行了么啊
作者: taroxd    时间: 2014-4-5 19:57
本帖最后由 taroxd 于 2014-4-30 20:21 编辑

加上新的,但是同名方法会覆盖原来的方法。
要完全重写类,可以用Object.send(:remove_const, :ClassName)来完成
作者: 天地有正气    时间: 2014-4-5 20:24
本帖最后由 天地有正气 于 2014-4-5 20:26 编辑

举个例子吧:
  1. class Rpglt
  2. end
复制代码
然后
  1. class rpglt
  2.   attr_accessor :hp
  3. end
复制代码
之后在
  1. class Rpglt
  2.   attr_accessor :sp
  3. end
复制代码
这两个实例变量都存在了。
如果
  1. class Rpglt
  2.   def xz
  3.     p "I'm XiaoZhou."
  4.   end
  5. end
复制代码
之后在
  1. class Rpglt
  2.   def aa
  3.     p "啊啊"
  4.   end
  5. end
复制代码
aa和xz两个方法都存在。

接下来
  1. class Rpglt
  2.   def xz
  3.     p "I'm TianDiYouZhengQi."
  4.   end
  5. end
复制代码
此时方法xz已经变成了显示“我是天地有正气。”




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