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

Posted jack-zh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的方法’

运行结果:

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

以上是关于Python入门-6面向对象编程:12组合的主要内容,如果未能解决你的问题,请参考以下文章

Python入门-6面向对象编程:01面向对象和面向过程区别-对象的进化

Python入门-6面向对象编程:09多态

Python入门-6面向对象编程:07面向对象三大特征(封装继承多态)-继承

Python入门-6面向对象编程:05方法没有重载-方法的动态性

Python入门-6面向对象编程:02类的定义-类和对象的关系-构造函数-实例属性-实例方法

Python入门-6面向对象编程:11对象的浅拷贝和深拷贝