class Base
@@var = "base"
def self.assign_var(var)
@@var = var
end
def self.show_var
@@var
end
def initialize
p @@var
end
end
class A < Base
assign_var("a")
end
class B < Base
assign_var("b")
end
class C < Base
assign_var("c")
end
p A.show_var # "c"
p B.show_var # "c"
p C.show_var # "c"
a = A.new # "c"
b = B.new # "c"
c = C.new # "c"
어떻게 자신의 가치는 자신의 클래스에 할당 보여주기 위해 만드는? 같은 :
p A.show_var # "a"
p B.show_var # "b"
p C.show_var # "c"
a = A.new # "a"
b = B.new # "b"
c = C.new # "c"
UPDATE
나는 이니셜이 var에 액세스해야합니다.
class Base
@var = "base"
def self.assign_var(var)
@var = var
end
def self.show_var
@var
end
def initialize
p @var
end
end
class A < Base
assign_var("a")
end
class B < Base
assign_var("b")
end
class C < Base
assign_var("c")
end
p A.show_var # "a"
p B.show_var # "b"
p C.show_var # "c"
a = A.new # nil
b = B.new # nil
c = C.new # nil
내가 Vu의 솔루션을 사용하는 경우 작동하지 않습니다 ... 어떤 아이디어입니까?
일부 문서는 클래스 변수 ('@@') 클래스 * 계층 구조 * 변수. 나는 클래스 계층 변수를 사용할 때 좋은 예를 보지 못했다. IMO의 경험 법칙은 : 사용하지 마십시오. – spickermann