查看: 979|回复: 8

[初学语法问题]RGSS中怎么复制另一个类的方法?

  [复制链接]
梦石
0
星屑
50
在线时间
3 小时
注册时间
2005-12-4
回帖
55
发表于 2009-5-13 19:28:41 | 显示全部楼层 |阅读模式

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

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

×
我想在一个类之下复制并引用另一个类中的方法,但不想写重复代码,请问语句上应该怎样写?
梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
回帖
1912
发表于 2009-5-13 19:29:57 | 显示全部楼层
class 你的类 < 你想要复制的类
end

这就是所谓的儿子从老子那儿继承了
回复

使用道具 举报

梦石
0
星屑
50
在线时间
3 小时
注册时间
2005-12-4
回帖
55
 楼主| 发表于 2009-5-13 19:32:40 | 显示全部楼层
额,不是整个类的继承,我只要引用其中的一个函数就可以了
回复

使用道具 举报

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
回帖
1912
发表于 2009-5-13 20:53:57 | 显示全部楼层
……两个没有继承关系的类之间,各自的成员是具有封装性质的,在一个类的非静态上下文中要引用另一个类的非静态方法,可以先建立一个该类的对象,然后通过这个对象来引用该方法~
也可以在想要引用的方法的类中建立一个静态的单例,这样就不需要在非静态上下文中每次都建立对象了

不继承、不建立对象的话,要引用其它类中的方法不太现实,因为非静态的内容在对象建立前是不会执行的,而在静态的上下文中又无法去引用非静态的内容(比如类方法中无法获取类的实例方法),除非你想引用的方法是一个静态的类方法,这样就能直接通过类名来调用

Ruby 中应该也没有类似 C++ 友元的机制……

如果是一个模块中的成员方法,你可以通过 include 来混入一个类中,但这实际上还是让类继承自一个匿名的父类……
系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
回复

使用道具 举报

梦石
0
星屑
50
在线时间
3 小时
注册时间
2005-12-4
回帖
55
 楼主| 发表于 2009-5-13 21:07:07 | 显示全部楼层
那如果是静态的方法,应该如何引用呢?

话说,静态方法和非静态方法如何区分?是不是看有没有建立实例?
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
回帖
2407

第1届Title华丽大赛新人奖

发表于 2009-5-13 21:08:16 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

梦石
0
星屑
50
在线时间
3 小时
注册时间
2005-12-4
回帖
55
 楼主| 发表于 2009-5-13 21:19:12 | 显示全部楼层
谢谢两位!我弄明白了~
回复

使用道具 举报

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
回帖
1912
发表于 2009-5-13 21:23:42 | 显示全部楼层
同沉影说的,Ruby 的类本身也是一个 Class 对象,这个类就是典型的单例类,当用 class Name..end 建立了一个类之后就会把这个对象保存到类名的全局常量中~
Class 类里面保存的就是关于类的一些静态信息

至于区分,你看方法声明的地方就知道了,非静态的方法直接 def methodName,静态的方法则是:def self.methodName 或者 def 类名.methodName
回复

使用道具 举报

梦石
0
星屑
7095
在线时间
1666 小时
注册时间
2008-10-29
回帖
6612

贵宾

发表于 2009-5-13 21:35:23 | 显示全部楼层
其实最简单的方法是ctrl+c 然后ctrl+v  -v-











你知道得太多了

回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部