(一)Python入门-6面向对象编程:12组合

组合:

  “is-a”关系,我们可以使用“继承”。从而实现子类拥有的父类的方法和属性。“is-a” 关系指的是类似这样的关系:狗是动物,dog is animal。狗类就应该继承动物类。

  “has-a”关系,我们可以使用“组合”,也能实现一个类拥有另一个类的方法和属性。” has-a”关系指的是这样的关系:手机拥有 CPU。 MobilePhone has a CPU。

【操作】

#测试组合
import copy
class MobilePhone:
    def __init__(self,cpu,screen):
        self.cpu = cpu
        self.screen = screen

class CPU:
    def calculate(self):
        print('计算。。。。。')

class Screen:
    def show(self):
        print('显示。。。。。')

c = CPU()
s = Screen()
m = MobilePhone(c,s)

m.cpu.calculate()   #通过组合,调用cpu对象的方法,相当于手机对象间接拥有了‘cpu的方法’
m.screen.show()     #通过组合,调用screen对象的方法,相当于手机对象间接拥有了‘screen的方法’

运行结果:

  计算。。。。。
  显示。。。。。

posted on 2019-05-11 23:37  JACK#zhang  阅读(144)  评论(0编辑  收藏  举报