类的组合与继承对比

一、类的组合

  • 1、概念:组合是指一个类的属性直接是另外一个类的实例
  • 2、实现代码

    class Hand(object):
        """
        定义一个手的类
        """
    
        def __init__(self, length):
            self.length = length
    
        def func(self):
            print('手能干活')
    
    class Foot(object):
        """
        定义一个脚的类
        """
    
        def __init__(self):
            pass
    
        def func(self):
            print('脚是用来走路的')
    
    class Person(object):
        """
        定义一个人类
        """
    
        def __init__(self):
            # 使用组合的方式将几个类组合在一起
            self.hand = Hand(10)
            self.foot = Foot()
    
        def info(self):
            pass
    
    if __name__ == "__main__":
        p = Person()
        # 可以直接打印手类的属性
        print(p.hand.length)
        p.hand.func()
        p.foot.func()
    

二、 关于类的组合与类的继承的选择问题

  • 类的继承和组合都是将别的类的属性或者方法拿过来用
  • 使用组合的情况:当类之间有显著不同,并且较小的类是较大类所需要的组件时候,就可以用组合
  • 使用继承的情况:当类与类之间有相同的功能,提取这些共同的功能做成基类,用继承比较好

results matching ""

    No results matching ""