Project1
标题:
[初学语法问题]RGSS中怎么复制另一个类的方法?
[打印本页]
作者:
xyxw
时间:
2009-5-13 19:28
标题:
[初学语法问题]RGSS中怎么复制另一个类的方法?
我想在一个类之下复制并引用另一个类中的方法,但不想写重复代码,请问语句上应该怎样写?
作者:
紫苏
时间:
2009-5-13 19:29
class 你的类 < 你想要复制的类
end
这就是所谓的儿子从老子那儿继承了
作者:
xyxw
时间:
2009-5-13 19:32
额,不是整个类的继承,我只要引用其中的一个函数就可以了
作者:
紫苏
时间:
2009-5-13 20:53
……两个没有继承关系的类之间,各自的成员是具有封装性质的,在一个类的非静态上下文中要引用另一个类的非静态方法,可以先建立一个该类的对象,然后通过这个对象来引用该方法~
也可以在想要引用的方法的类中建立一个静态的单例,这样就不需要在非静态上下文中每次都建立对象了
不继承、不建立对象的话,要引用其它类中的方法不太现实,因为非静态的内容在对象建立前是不会执行的,而在静态的上下文中又无法去引用非静态的内容(比如类方法中无法获取类的实例方法),除非你想引用的方法是一个静态的类方法,这样就能直接通过类名来调用
Ruby 中应该也没有类似 C++ 友元的机制……
如果是一个模块中的成员方法,你可以通过 include 来混入一个类中,但这实际上还是让类继承自一个匿名的父类…… [LINE]1,#dddddd[/LINE]
系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者:
xyxw
时间:
2009-5-13 21:07
那如果是静态的方法,应该如何引用呢?
话说,静态方法和非静态方法如何区分?是不是看有没有建立实例?
作者:
沉影不器
时间:
2009-5-13 21:08
提示:
作者被禁止或删除 内容自动屏蔽
作者:
xyxw
时间:
2009-5-13 21:19
谢谢两位!我弄明白了~
作者:
紫苏
时间:
2009-5-13 21:23
同沉影说的,Ruby 的类本身也是一个 Class 对象,这个类就是典型的单例类,当用 class Name..end 建立了一个类之后就会把这个对象保存到类名的全局常量中~
Class 类里面保存的就是关于类的一些静态信息
至于区分,你看方法声明的地方就知道了,非静态的方法直接 def methodName,静态的方法则是:def self.methodName 或者 def 类名.methodName
作者:
后知后觉
时间:
2009-5-13 21:35
其实最简单的方法是ctrl+c 然后ctrl+v -v-
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1