Project1

标题: 变量问题 [打印本页]

作者: 490832999    时间: 2013-7-7 12:12
标题: 变量问题
本帖最后由 490832999 于 2013-7-7 12:14 编辑

例子

class Game_Battler < Game_BattlerBase

    def ob_type

        if @enemy_id != nil
             return "怪物"
        else
             return "角色"
        end

    end

end

Game_Battler与Game_BattlerBase中是没有 @actor_id 与 @enemy_id 变量的
而 Game_Actor 与 Game_Enemy 是它的子类,才拥有其一变量

我是这样想的,只有子类能继承父类的所有实例变量与方法,而父类不能继承子类。但这里Game_Battler中根本没有@actor_id 与 @enemy_id,而是在它的子类中,这两个变量是从它的子类来的吗?还是从其他地方来的?
作者: Sion    时间: 2013-7-7 12:33
实例变量不能继承啊,它跟类不是一个概念,是每个实例特有的。
只能通过对实例调用该类某个特定的方法,去改变实例里的实例变量。
作者: 490832999    时间: 2013-7-7 18:08
Sion 发表于 2013-7-7 12:33
实例变量不能继承啊,它跟类不是一个概念,是每个实例特有的。
只能通过对实例调用该类某个特定的方法,去 ...

好像搞懂了

是Game_Actor 与 Game_Enemy的实例调用了Game_Battler 的方法

然而Game_Actor 与 Game_Enemy的实例本来就有@actor_id 或 @emeny_id 这个实例变量

是吧?




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