组合

  • is-a关系:我们可以使用继承,从而实现子类拥有父类的方法和属性。
  • has-a关系:我们可以使用组合,也能实现一个类拥有另一个类的方法和属性。
 1 class A1:
 2     def say_a1(self):
 3         print('a1,a1,a1')
 4 
 5 class B1(A1):
 6     pass
 7 
 8 b1 = B1()
 9 b1.say_a1()
10 
11 class A2:
12     def say_a2(self):
13         print('a2,a2,a2')
14 
15 class B2:
16     def __init__(self,a):
17         self.a = a
18 
19 a2 = A2()
20 b2 = B2(a2)
21 b2.a.say_a2()