Python的继承详解

简介: Python的继承详解

目录

继承的初识

继承的规则

小结


继承的初识

继承概念:继承是类与类的一种关系,是一种子类与父类的关系,即爸爸与儿子,爸爸生个儿子,儿子继承爸爸的属性和方法。

总的来说,编写类不一定要从空白开始,我们也可以利用一个现成的版本,就是可以使用继承当一个类,如果继承另一个类的时候,就会自动把所有的属性和方法复制过来也就叫父类,这个新形成类,直接会把父类的所有属性方法同时继承,还可以定义属于自己的属性和方法

下面我们举一个例子

class Animal:
    def __init__(self,name,aggr,hp):
        self.name = name
        self.aggr = aggr
        self.hp = hp
class Dog(Animal):
    def bite(self,person):
        person.hp -= self.aggr
class Person(Animal):
    pass
wc = Dog('旺财',100,500)
print(wc.name)

继承的规则

继承的规则是,如果子类没有的属性和方法,就会去找父类,如果父类再没有的话,就会去找object类,因为所有类都是默认继承object类,如果还找不到的话,程序就会报错,但是如果子类和父类同时拥有一个相同的方法,那么子类就不会再去找父类,而是会从自己的方法中寻找使用自己的方法,这个是继承的一大很重要的特性

下面就再来举一个例子

class Animal:
    def __init__(self,name,aggr,hp):
        self.name = name
        self.aggr = aggr
        self.hp = hp
    def eat(self):
        print(f'{self.name}已经吃药回血')
        self.hp += 100
class Dog(Animal):
    def __init__(self,name,aggr,hp,kind):
        Animal.__init__(self,name,aggr,hp)
        self.kind = kind    #派生属性
    def eat(self):  #如果既想实现新的功能也想使用父类原本的功能,还需要在子类中再调用父类
        Animal.eat(self)
        self.teeth = 2
    def bite(self,person):  #派生方法
     person.hp -= self.aggr
class Person(Animal):
    def __init__(self,name,aggr,hp,kind):
        Animal.__init__(self,name,aggr,hp)
        self.kind = kind    #派生属性
jin = Dog('旺财',100,500,'泰迪')
print(jin.name)
alex = Person('alex',1,2,None)
alex.eat()
print(alex.hp)
jin.bite(alex)
print(alex.hp)

继承的两大种类

在Python中继承有两大种类,一种是单继承,一种是多继承,单继承顾名思义就是只有一个父亲,也就是一个父类,而多继承就是可以继承一个或多个父类的属性和方法,注意,如果多个父类中有同名的属性和方法,就会不能使用第1个父类的属性和方法,这时我们就会使用到广度优先深度优先的原则,多个父类不重名的属性和方法就不会有这种影响,在Python中强调和合理的继承,可以使代码的效率更加的提高,减少代码的重用性

小结

    父类中没有的属性 在子类中出现  叫做派生属性

   父类中没有的方法 在子类中出现  叫做派生方法

   只要是子类的对象调用, 子类中有的名字 一定是用子类的 ,子类中没有的才找父类

   如果父类中也没有就会报错

   如果父类 子类都有 则用子类的

   如果还想用父类的 则需要单独调用父类的,需要自己传self参数

相关文章
|
6月前
|
Python
Python中的继承:概念、用法与示例
Python中的继承:概念、用法与示例
69 0
|
6月前
|
Python
请简述Python中的继承、封装和多态的概念。
【2月更文挑战第24天】【2月更文挑战第82篇】请简述Python中的继承、封装和多态的概念。
42 1
|
3月前
|
算法 Python
python多继承的3C算法是什么?怎么用?
有很多地方都说python多继承的继承顺序,是按照深度遍历的方式,其实python多继承顺序的算法,不是严格意义上的深度遍历,而是基于深度遍历基础上优化出一种叫3C算法
|
3月前
|
算法 Python
Python 中的继承:强大的代码复用机制
【8月更文挑战第23天】
53 0
|
6月前
|
Python
Python中的面向对象编程与继承
本文将深入探讨Python中面向对象编程的核心概念,重点讨论继承的实现原理以及在实际开发中的应用。通过详细的示例和解释,读者将能够全面理解Python中继承的使用方式和优势,为提高代码的复用性和可维护性提供有效的技术支持。
|
5月前
|
Python
Python面向对象进阶:深入解析面向对象三要素——封装、继承与多态
Python面向对象进阶:深入解析面向对象三要素——封装、继承与多态
|
6月前
|
Python
Python进阶---面向对象 继承
Python进阶---面向对象 继承
27 1
|
6月前
|
Python
Python 继承
Python 继承
35 0
|
6月前
|
Python
Python继承:深入探索与实际应用
Python中的继承是OOP三大特性之一,允许子类继承父类的属性和方法,实现代码重用和扩展。子类通过`class`关键字和父类名定义,支持单继承和多继承。子类可覆盖父类方法,使用`super()`调用父类同名方法。继承在实际应用中如游戏开发,可创建类体系,提高代码复用性,实现模块化和层次化。掌握继承对于构建高效软件系统至关重要。
|
6月前
|
Python
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念