我想说说一点我的看法,我也是新手。
cc 方法是在 KernelModule 模块中的实例方法,include 进入 FatherClass 后
因为 Mix-in 的关系,会变成 FatherClass 的实例方法,SonClass 继承之后,成为子类的实例方法
而类中是不能直接调用实例方法的
所以,直接在类中 cc 会报错的
class SonClass < FatherClass
self.new.cc
end
是可以调用的,但是现在还有一个问题,就是在 module 中将 cc 声明为私有方法
所以,即使这样,调用 (访问) 还是失败的,去掉 private,就可以使用了
有一点要纠正的是,
但是其实 SonClass 也是一个对象,是 Class 的实例化对象:
这句话没问题,但是,cc 并不是 Class 中的实例方法,即使 SonClass 理解为 Class 类的实例对象,也不能调用此方法
而且,SonClass 并未继承 Class 类,其继承的是 Object 类,所以如果这样搞
class << Object
include KernelModule
end
就可以直接在类中 cc 了,当然 private 也是不行的
就像@fighterleslie 说的,从继承机制上可以看出来
最后,看了一眼帖子的时间,挖了一个坟帖,抱歉了
只是进行问题的交流,并无其他恶意
明白了,一针见血,谢谢你了。
public, private, protected 解释的很清楚,
另外,还可以请教一下,哪里还有这么明了的资料吗?
好,谢谢。就是说在类 UNIX 下学下好一点,那有没有什么好的推荐书籍,我还是习惯于看书学习,不是很习惯看视频学习