设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2355|回复: 2
打印 上一主题 下一主题

[已经解决] 变量问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
65
在线时间
84 小时
注册时间
2008-3-31
帖子
88
跳转到指定楼层
1
发表于 2013-7-7 12:12:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 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,而是在它的子类中,这两个变量是从它的子类来的吗?还是从其他地方来的?

Lv2.观梦者 (暗夜天使)

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

贵宾

2
发表于 2013-7-7 12:33:59 | 只看该作者
实例变量不能继承啊,它跟类不是一个概念,是每个实例特有的。
只能通过对实例调用该类某个特定的方法,去改变实例里的实例变量。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
65
在线时间
84 小时
注册时间
2008-3-31
帖子
88
3
 楼主| 发表于 2013-7-7 18:08:01 | 只看该作者
Sion 发表于 2013-7-7 12:33
实例变量不能继承啊,它跟类不是一个概念,是每个实例特有的。
只能通过对实例调用该类某个特定的方法,去 ...

好像搞懂了

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

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

是吧?
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-18 08:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表