Ruby class instance variables and inheritance

前端 未结 9 655
日久生厌
日久生厌 2020-12-28 08:02

I have a Ruby class called LibraryItem. I want to associate with every instance of this class an array of attributes. This array is long and looks something lik

9条回答
  •  既然无缘
    2020-12-28 08:45

    This is for strings (anything really), rather than arrays, but...

    class A
      def self.a
        @a || superclass.a rescue nil
      end
    
      def self.a=(value)
        @a = value
      end
    
      self.a = %w( apple banana chimp )
    end
    
    class B < A
    end
    
    class C < B
      self.a += %w( dromedary elephant )
    end
    
    class D < A
      self.a = %w( pi e golden_ratio )
    end
    
    
    
    irb(main):001:0> require 'test2'
    => true
    irb(main):002:0> A.a
    => ["apple", "banana", "chimp"]
    irb(main):003:0> B.a
    => ["apple", "banana", "chimp"]
    irb(main):004:0> C.a
    => ["apple", "banana", "chimp", "dromedary", "elephant"]
    irb(main):005:0> D.a
    => ["pi", "e", "golden_ratio"]
    irb(main):006:0> A.a = %w( 7 ) 
    => ["7"]
    irb(main):007:0> A.a
    => ["7"]
    irb(main):008:0> B.a
    => ["7"]
    irb(main):009:0> C.a = nil
    => nil
    irb(main):010:0> C.a
    => ["7"]
    

提交回复
热议问题