zoukankan      html  css  js  c++  java
  • Ruby-模块和类

    首先看下他们的关系

    1. irb(main):100:0> String.class
    2. => Class
    3. irb(main):101:0> String.class.superclass 
    4. => Module
    5. irb(main):102:0> String.class.superclass.superclass 
    6. => Object

    class < Module < Object

    1、类 只能单继承,但是可以包含多个模块

    module AA
      def AA.prints1(str)
        print "A:"+str
      end
    end


    module BB
      def BB.prints2(str)
        print "B:"+str
      end
    end

    class CC
      include AA
      AA.prints1("aa")
      include BB
      BB.prints2("bb")
    end

    2、模块 就和c#接口类似,包含一些公共接口方法,无法实例化

    类调用模块的两种方式

    A.rb 在方法前加 模块名.方法名 (AA.prints1) , 在其引用类中就可以直接调用 AA.prints1

    module AA
      def AA.prints1(str)
        print "A:"+str
      end
    end

    B.rb 如果没有加模块名则需要在其引用类中添加 include BB把方法包含进引用类中,相当于继承了方法,然后就可以直接调用了prints2

    module BB
      def prints2(str)
        print "B:"+str
      end
    end

  • 相关阅读:
    使用Eclipse的坑
    约定优于配置
    Tomcat服务器使用和debug
    spring框架排错
    spring框架学习感悟
    Spring的标签和验证等模块
    11. Container With Most Water
    1367. Linked List in Binary Tree
    486. Predict the Winner
    205. Isomorphic Strings
  • 原文地址:https://www.cnblogs.com/yangleiWPF/p/4481941.html
Copyright © 2011-2022 走看看