这几天在研究 Ruby 元编程这本书,看到 Class 和 Module 的区别,仔细想了一下,觉得跟 java 里边的多态有点异曲同工的意思。 Module 相当于 java 里边的父类,Class 只是在 Module 的基础上有了不一样的表现。大家怎么看,也可以说说你们在什么情况下会使用 Class,什么情况下使用 Moudle,我就是抛砖引玉!!!
Java 的多态对应的是 duck typing Module 应该像 Java8 的胖接口(是这么叫?)
#1 楼 @saiga java 中的接口只是定义了一个方法的申明,不能够定义方法体。所以还是觉得更像超级父类(我也忘了是不是这么叫了)
别和 java 比嘛,不然后面看不下去啊
#2 楼 @ucooling java8 的接口...不过我没做过 java 不太清楚新特性
总是跟 Java 比写出来的代码会成为 Ruva。
#5 楼 @billy #3 楼 @sunday35034 没有要比的意思,只是在看的时候突然联想到了,我也只是在大学期间学过点 java,现在基本上全忘了。之所以选择学习 Ruby 就是喜欢它的自由的风格。
忘了就忘了,为了学 Ruby 不用把 Java 捡起来。一个动态一个编译差别很大的。
#6 楼 @ucooling 忘了就对了,现在还能找到相似的地方可以比较,看到后面就找不到可比性了。不过 java 也有个动态生成类的叫 asm 好像。毕竟底层实现还是 C
其实 module 更像 c 里面#define,直接把函数在 include 的地方扩展。