2012-04-04 14 views
1

の要素のクラスの変化型を継承することができます私はクラスA1A2 及びタイプA1/A2の要素を持つクラスBを持っていると仮定します。は、基本クラス

今私はクラスB '(B)(Bを継承しています)があります。 このクラスはA1とA2の代わりにA1 'とA2'を使用できます、 この新しいクラスは基本クラスの要素の型をどうにか交換できますか?

通常、私はそれは不可能だと言うだろうが、これは、Pythonについてですので、...:P

+0

ここで「要素」は「属性」を意味しますか? –

+0

標準的な[多型](http://en.wikipedia.org/wiki/Polymorphism_(computer_science))や正しいタイプ宣言(常に参照タイプとしてスーパータイプを宣言している)のようなサウンドは他の同様に、A1とA2がA2とA1から継承されている限り、言語も同様です。 – BergmannF

+0

@gnibblerはいそれがあります – HWende

答えて

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 
+0

優秀!サンプルコードをありがとう、私はPythonに感銘を受けました。再び。 – HWende

関連する問題