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参数

相关文章
|
2月前
|
Python
Python中的继承:概念、用法与示例
Python中的继承:概念、用法与示例
23 0
|
2月前
|
Python
请简述Python中的继承、封装和多态的概念。
【2月更文挑战第24天】【2月更文挑战第82篇】请简述Python中的继承、封装和多态的概念。
|
5月前
|
Python
跟我从0学Python——类的继承和多态
类的继承和多态 —— 面向对象编程的扩展与灵活性
|
6月前
|
Python
51 python - 多继承
51 python - 多继承
22 0
|
5月前
|
Python
Python 面向对象编程: 在 Python 中如何实现继承?
Python 面向对象编程: 在 Python 中如何实现继承?
44 0
|
5月前
|
Python
Python 面向对象编程:什么是面向对象编程(OOP)?解释封装、继承和多态的概念。
Python 面向对象编程:什么是面向对象编程(OOP)?解释封装、继承和多态的概念。
43 0
|
2月前
|
Python
Python中的面向对象编程与继承
本文将深入探讨Python中面向对象编程的核心概念,重点讨论继承的实现原理以及在实际开发中的应用。通过详细的示例和解释,读者将能够全面理解Python中继承的使用方式和优势,为提高代码的复用性和可维护性提供有效的技术支持。
|
19天前
|
Python
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
|
27天前
|
Python
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
60 0
|
5月前
|
Python
python面向对象编程,解释继承和多态的概念。
python面向对象编程,解释继承和多态的概念。