赞 | 15 |
VIP | 71 |
好人卡 | 24 |
积分 | 36 |
经验 | 70116 |
最后登录 | 2024-10-23 |
在线时间 | 3065 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 3583
- 在线时间
- 3065 小时
- 注册时间
- 2011-11-17
- 帖子
- 980
|
本帖最后由 yagami 于 2014-5-3 19:33 编辑
话说继承不是这么用的 class 猫 < 动物
calss 狗 <动物
你可以说 猫和狗是动物 但不能说动物是 猫狗
Game_Character既然被拿出来当父类 说明他有很多公共的部分 可以供Game_Event 和 Game_Player
但 后面2个子类 也有自己独有的部分 其实按你的意思 就是把这3个写在一起 把 子类的变量和函数都写到父类里去 这样就达到你的目的了 但这样的话 首先代码不方便扩展 其次会有内存浪费 比如 Game_Event 要个int 变量xxx 但 Game_Player 里完全用不到 虽然可以用个类似类型的参数 使同一个变量 在不同场合做不同的事情 但这样的代码可读性非常差
顺便补充一点 lz不嫌内存浪费的话 可以用组合的方式
class CharacterBase
attr_accessor : a
attr_accessor : b
def initialize(a,b)
@a=a
@b=b
end
end
a b 代表Game_Event 和 Game_Player的实例 如果只需要1个参数 另一个传nil 用起来就
CharacterBase t = new CharacterBase
t.a.xx if t.a !=nil
t.b.xx if t.b !=nil |
评分
-
查看全部评分
|