可以在基类中继承类更改类型的元素

时间:2012-04-04 06:57:58

标签: python class

假设我有 A1 A2 类 以及具有A1 / A2类型元素的 B 类。

现在我有一个班级 B'(B)(它继承自B)。 这个班级可以使用A1'和A2'而不是A1和A2 , 这个新类能以某种方式交换基类中的元素类型吗?

通常我会说这不可能,但因为这是关于python ......:P

1 个答案:

答案 0 :(得分:4)

你的意思是这样吗?

class A1(object):
    pass

class A1Child(A1):
    pass

class A2(object):
    pass

class A2Child(A2):
    pass


class B(object):

    a1_instance = None
    a2_instance = None

    def __init__(self):
        self.a1_instance = A1()
        self.a2_instance = A2()

class BChild(B):

    def __init__(self):
        self.a1_instance = A1Child()
        self.a2_instance = A2Child()


b_instance = B()

print b_instance.a1_instance
print b_instance.a2_instance


bchild_instance = BChild()

print bchild_instance.a1_instance
print bchild_instance.a2_instance