day24 01 初识继承

day24 01 初识继承python

 

面向对象的三大特性:继承,多态,封装spa

 

1、继承的概念线程

继承:是一种建立新类的方式,新建的类能够继承一个或者多个父类,父类又可称基类或超类,新建的类称为派生类或者子类code

class A:  # 父类,基类,超类
    pass
class B:  # 父类,基类,超类
    pass
class A_son(A,B):  # 子类,派生类
    pass
class AB_son(A,B):  # 子类,派生类
    pass
  • 一个类能够被多个类继承,先有父类才有子类
  • 一个类能够继承多个父类----只在python里面才能够,其余语言不能够

注意:从父类不能知道本身将会被哪一个类继承,可是从子类确定能够知道本身的父类,这是从子类像父类指向单方向线程对象

 

2、父类的查看方法blog

相似于对像能够使用_dict_方法查看属性,子类也能够使用_bases_方法查看它的父类继承

class A:  # 父类,基类,超类
    pass
class B:  # 父类,基类,超类
    pass
class A_son(A):  # 子类,派生类
    pass
class B_son(A,B):  # 子类,派生类
    pass
class AB_son(A,B):  # 子类,派生类
    pass
print(A_son.__bases__)
print(B_son.__bases__)
print(AB_son.__bases__)
print(A.__bases__)
print(B.__bases__)

运行结果:游戏

C:\Users\sku1-1\PycharmProjects\untitled\venv\Scripts\python.exe "C:/Users/sku1-1/PycharmProjects/untitled/day24  01 初识继承.py"
(<class '__main__.A'>,)
(<class '__main__.A'>, <class '__main__.B'>)
(<class '__main__.A'>, <class '__main__.B'>)
(<class 'object'>,)
(<class 'object'>,)

Process finished with exit code 0

从上面的运行结果能够看到,特别的父类A和B的父类都是‘object’,若是没有继承父类,就默认继承‘object’,这也是python3的新式类ip

 

3、继承表达的关系:什么是什么的关系it

       只有是两个类之间才会产生继承的关系,两个类之间存在一些共同的抽象的东西,将这些共同的东西抽象出来就能够成为这两个类的父类

  以以前的人狗大战的游戏为例,里面的人物角色与狗的角色,定义它们的类的时候,里面有一些属性是相同的,好比:name,blood,aggr,并且狗和人都是动物,这样就能够抽象出它们的父类---animal,参考如下代码:

class animal:  # 父类 def __init__(self,name,blood,aggr):
        self.name=name
        self.blood=blood
        self.aggr=aggr
class dog(animal):  # 子类 def bite(self,someone):
        someone.blood-=self.aggr
class someone(animal):  # 子类 def attack(self,dog):
        dog.blood -=self.aggr

dog1 = dog('溜溜球',200,500)
print(dog1.name)
person1 = someone('王昭君',300,500)
print(person1.name)

运行结果:

溜溜球
王昭君
相关文章
相关标签/搜索