介绍
这篇文章给大家分享的是有关Python面向对象中的继承是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
<强> 1,什么是继承? 强>
继承指的是类与类之间的关系,是一种什么是什么的关系,功能之一就是用来解决代码重用问题。
继承是一种创建新类的方式,在Python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类,继承又分为单继承和多继承。
类ParentClass1: #定义父类 通过 类ParentClass2: #定义父类 通过 类SubClass1 (ParentClass1): #单继承,基类是ParentClass1,派生类是子类 通过 python类SubClass2 (ParentClass1 ParentClass2): #支持多继承,用逗号分隔开多个继承的类 通过 打印(Son1.__bases__) #查看所有继承的父类 打印(Son2.__bases__)===============(& lt;类& # 39;__main__.Father1& # 39;祝辞,) (& lt;类& # 39;__main__.Father1& # 39;祝辞,& lt;类& # 39;__main__.Father2& # 39;祝辞)
<强> 2,继承与抽象强>
抽象分成两个层次:
1。将奥巴马和梅西这俩对象比较像的部分抽取成类;
2。将人、猪、狗这三个类比较像的部分抽取成父类。
抽象最主要的作用是划分类别(可以隔离关注点,降低复杂度)
<强>继承:强>
是基于抽象的结果,通过编程语言去实现它,肯定是先经历抽象这个过程,才能通过继承的方式去表达出抽象的结构。
抽象只是分析和设计的过程中,一个动作或者说一种技巧,通过抽象可以得到类。
类动物():#定义父类=& # 39;国家中国# 39;#这个叫类的变量 def __init__(自我、名字、年龄): self.name=名字#这些又叫数据属性 self.age=年龄 def走(自我):#类的函数,方法,动态属性 打印(& # 39;% s走# 39;% self.name) def(自我)说: 通过 类人(动物):#子类继承父类 通过 类猪(动物):#子类继承父类 通过 类的狗(动物):#子类继承父类 通过 aobama=人(& # 39;aobama& # 39; 60) #实例化一个对象 打印(aobama.name) aobama.walk ()===================aobama aobama走
<强> 3,派生强>
1。在父类的基础上产生子类,产生的子类就叫做派生类。
2。父类里没有的方法,在子类中有了,这样的方法就叫做派生方法。
3。父类里有,子类也有的方法,就叫做方法的重写(就是把父类里的方法重写了).
例1
类英雄: def __init__(自我,昵称, 攻击力, life_value): 自我。昵称=昵称 自我。侵袭力=攻击力 自我。life_value=https://www.yisu.com/zixun/life_value def攻击(自我,敌人): 的敌人。life_value -=self.aggressivity 类Garen(英雄):#子类继承英雄父类 营=' Demacia ' #子类衍生出的变量 def攻击(自我,敌人):#跟父类的攻击重名,对象调用的时候以子类的为准 通过 def火(自我):#父类没有火,这火里属于派生出来的东西 打印(“% s射击”% self.nickname) 类分裂(英雄): 营=' Noxus ' g1=Garen (' Garen ', 18200) r1=撕裂(rivren, 18200) #打印(g1.camp) #打印(r1.camp) # g1.fire () g1.attack (g1)
2例
类英雄: def __init__(自我,昵称,攻击力,life_value): 自我。昵称=昵称 自我。侵袭力=攻击力 自我。life_value=https://www.yisu.com/zixun/life_value def攻击(自我,敌人): 打印(“英雄攻击”) 类Garen(英雄): 营=' Demacia ' def攻击(自我,敌人):#自我=g1,敌人=r1 # self.attack(敌人)# g1.attack (r1),这里相当于无限递归 Hero.attack(自我,敌人)#引用父类的攻击,对象会去跑父类的攻击 打印(garen攻击)#再回来这里 def火(自我): 打印(“% s射击”% self.nickname) 类分裂(英雄): 营=' Noxus ' g1=Garen (Garen, 18, 200) r1=撕裂(rivren, 18, 200) g1.attack (r1) #打印(g1.camp) #打印(r1.camp) # g1.fire ()
<强> 4组合与重用性强>
重用性: