1
рубинаПреобразование базового класса Подкласс в Рубине
class A
@x = 1
@y = 2
attr_accessor :x, :y
end
class B < A
@z = 3
attr_accessor :z
end
a = A.new
b = B.new
[1] преобразовать экземпляр А (а) до В? без потери каких-либо значений члена A в C++ там будет static_cast, reinterpret_cast, «convert» operator и т. д., как это сделать на ruby? (Есть ли ярлык), например
b = a.convert_to B
# b.x = 1
# b.y = 2
# b.z = 3
[2], как перезаписать каждый унаследовал значения члена данных B (б) экземпляр, используя значение, если-х есть много членов данных по наследству? (есть ли встроенный метод или ярлык для этого?)
a.x = 1
a.y = 2
b.x = 3
b.y = 4
b.z = 6
b.overwrite_all_inherited_method_from a
# b.x = 1
# b.y = 2
# b.z = 6
Это плохой ООП, если вы спросите меня. –
какая часть плохая? : | заранее заранее – Kokizzu
The downcasting часть. Мне еще предстоит увидеть действительную потребность в этом. –