1
子类在红宝石转换基类中的Ruby
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的实例的(a)到B?而不会丢失任何A的成员值 在c + +会有static_cast,reinterpret_cast,“转换”运营商等等。如何在ruby上做到这一点? (是否有任何快捷方式),例如
b = a.convert_to B
# b.x = 1
# b.y = 2
# b.z = 3
[2]如何覆盖每个继承(b)中例如使用的值,如果有许多继承数据成员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
这是一些不好的OOP,如果你问我。 – 2013-02-21 10:11:08
哪部分不好? :|预先感谢您 – Kokizzu 2013-02-21 10:13:31
下转部分。我还没有看到对此的有效需求。 – 2013-02-21 10:15:26