全国服务热线:400-6263-721

位置:厦门乐博乐博少儿机器人编程培训学校 > 学校动态 > 青少年学编程 面向对象编程之多重继承

青少年学编程 面向对象编程之多重继承

来源:厦门乐博乐博少儿机器人编程培训学校时间:2022/4/23 17:10:30

  所谓多重继承是指一个类继承了多个类,就好比我们都继承了父亲和母亲的DNA一样。

  编程里面多重继承的好处是什么呢?看过斗罗大陆的都知道里面的一种技能——武魂融合技,程序里的多重继承就和这个技能类似。

  先来看个示例程序:

  程序里面定义了四个类:分别是Animal、Cat、Dog、Monster,这四个类每个类中都包含有一个不同的方法。并且Cat继承Animal,Monster又继承了Cat和Dog两个类。

  定义之后我们实例化了一个sherk对象,较后四行我们分别调用了属于不同类的四个方法,结果都调用成功了,输出相应的描述字符。

  也就是说Monster类通过继承,不仅获得两个父类的方法,而且还获得父类的父类中的方法。就好比你过年的时候能收到你爸爸妈妈、爷爷奶奶、外公外婆的六个红包一样。

  这就是多重继承较直观的表现,就是能得到更多的属性和方法。

  当然细心的小伙伴可能发现了,这些类中都没有定义构造函数。

  但是包含构造函数的类在继承上却有一定的区别,一起来看看。

  上面的代码在本类没有定义构造函数,但是在父类中都写了构造函数,那么实例化的时候调用的是哪一个呢?

  从右侧的结果我们可以看出,子类Monster在实例化的时候调用的是父类cat的构造函数。这也是为什么我们在实例化的时候传递的参数是——“毛毛”,的原因。

  在python中,寻找构造函数的流程遵循的是深度的原则。

  也就是说如果本类中没有构造函数,则到父类中寻找,如果在父类cat中也没有写构造函数,那么接下来它会到Animal中寻找而不是Dog中。

  这就好比,你找家长要零花钱。会先找爸爸要,如果爸爸没有私房钱,那么接下来你会去找爷爷要,而不是找妈妈要。这个过程就相当于深度。

  相反,如果爸爸不给就直接找妈妈,那就相当于广度。

  所以在本类没有定义构造函数,而在父类中有定义的情况下,进行实例化的时候需要注意父类构造函数的参数类型。

  当然如果本类中定义了构造函数,那自然就不会去父类中寻找了。在实例化的时候就只需要按照本类中的构造函数的要求来传递参数就可以了,就像下面这段代码一样。

  这里我们在本类写了构造函数,只是构造函数不需要传递参数。所以后面在实例化的是时候就不能传递参数,否则就会报错。

领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/2472/news/517543/违者必究! 以上就是厦门乐博乐博少儿机器人编程培训学校 小编为您整理 青少年学编程 面向对象编程之多重继承的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-6263-721