• 我想说说一点我的看法,我也是新手。

    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 解释的很清楚,

    另外,还可以请教一下,哪里还有这么明了的资料吗?

  • 新手小白求教 at 2017年08月28日

    好,谢谢。就是说在类 UNIX 下学下好一点,那有没有什么好的推荐书籍,我还是习惯于看书学习,不是很习惯看视频学习