Python面向对象学习小结之三 继承

继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类

python中类的继承分为:单继承和多继承

class ParentClass1: #定义父类

  pass

class ParentClass2: #定义父类

  pass

class SubClass1(ParentClass1): #单继承,基类是ParentClass1,派生类是SubClass

  pass

class SubClass2(ParentClass1,ParentClass2): #python支持多继承,用逗号分隔开多个继承的类

   pass

class Animal:

‘‘‘ 人和狗都是动物,所以创造一个Animal基类 ‘‘‘

   def __init__(self, name, aggressivity, life_value):

  self.name = name # 人和狗都有自己的昵称;

  self.aggressivity = aggressivity

   # 人和狗都有自己的攻击力;

   self.life_value = life_value  

  # 人和狗都有自己的生命值;

  def eat(self):

    print(‘%s is eating‘%self.name)

class Dog(Animal):

  pass

class Person(Animal):

  pass

egg = Person(‘egon‘,10,1000)

ha2 = Dog(‘二愣子‘,50,1000)

egg.eat()

ha2.eat()

派生的概念:

当然子类也可以添加自己新的属性或者在自己这里重新定义这些属性(不会影响到父类),需要注意的是,一旦重新定义了自己的属性且与父类重名,那么调用新增的属性时,就以自己为准了。

在子类中,新建的重名的函数属性,在编辑函数内功能的时候,有可能需要重用父类中重名的那个函数功能,应该是用调用普通函数的方式,即:类名.func(),此时就与调用普通函数无异了,因此即便是self参数也要为其传值.

在python3中,子类执行父类的方法也可以直接用super方法.

>>> class Teacher:
... def __init__(self,name,gender):
... self.name=name
... self.gender=gender
... def teach(self):
... print(‘teaching‘)
...
>>>
>>> class Professor(Teacher):
... pass
...
>>> p1=Professor(‘egon‘,‘male‘)
>>> p1.teach()

原文地址:https://www.cnblogs.com/peterhuang1977/p/9273673.html

时间: 2024-11-05 15:53:36

Python面向对象学习小结之三 继承的相关文章

python面向对象三大特性之继承、多态

继承 什么是继承          所谓继承指提供了同一类对象共性的处理方法,子类继承父类共性的东西. 这样有利于代码的复用性,即子类拥有父类的方法.通过继承创建的新类称为"子类"或"派生类",被继承的类称为"基类"."父类"或"超类". 继承可以想象成什么是什么的关系 python中类的继承分为:单继承和多继承 class Parent1: # 父类1 pass class Parent2: #父类2 p

Python 面向对象学习(一)

1. 面向对象的概念 面向对象编程--Object Oriented Programming,是我们在编程中解决问题的一个新的方式,一种编程的思想.而在常见的编程中,我们是以面向过程的方式解决的,首先我们了解一下面向对象与面向过程的基本概念. 1.1 面向过程 我们把完成一件工作的各个步骤依次编写代码,每一个步骤都可以封装成一个函数,在使用是只需要依次调用即可.特殊的,一个步骤也可以分成很多小的步骤,使用更小的函数来解决. 例如,把大象装进冰箱需要几步? 把冰箱门打开 把大象装进冰箱 把冰箱们关

python面向对象的三大特征--继承

#什么时候用继承 #1.当类之间有显著不同,并且较小的类是较大的类所需的组件时,用组合比较好 #2.当类之间有很多相同的功能,提供这些共同的功能做成基类,用继承比较好 class Dad: "这个是爸爸类" money=10 def __init__(self,name): print("爸爸") self.name=name def hit_son(self): print("%s 正在打儿子" %self.name) class Son(Da

Python学习:15.Python面向对象(二、继承的各种情况)

一.什么是继承 继承是一种创建类的方法,在python中,一个类可以继承来自一个或多个父.原始类称为基类或超类. #创建父类 class Parent1: pass class Parent2: pass # 继承父类,单继承 class Obj1(Parent1): pass #继承父类,多继承 class Obj2(Parent1,Parent2): pass 二.什么时候使用继承 在已经创建的几个类中,这几哥类中的方法和变量有相同的,这种时候我们就可以使用类的继承,将其它类中已有的方法和变

python面向对象编程 -- 封装、继承(python3.5)

面向对象编程三要素:封装.继承和多态.本文主要看和封装.继承相关的概念:在python中多态的概念比较模糊,本文不做讨论. 1 封装 封装:将数据和操作组装到一起,对外只暴露一些接口供类外部或子类访问,隐藏数据和操作的实现细节. 在其他面向对象语言,比如java中,属性访问控制一般有三种状态:private.protectd.public.python中没有什么东西是完全不可见的,没有任何机制可以强制性的隐藏数据.所以在python中不存在真正的只能在对象内部访问的属性.一个被大多数的pytho

Python面向对象(四)—继承、多态

继承 语法 1.代码: class 子类(父类): def __init__(self,参数列表): super().__init__(参数列表) self.自身实例变量 = 参数 设计角度: 先有子类,再有父类. 抽象化的过程:子(具体,小概念) -> 父(抽象,大概念) 编码角度: 先写父类,再写子类. 2.说明: -- 子类拥有父类的所有成员. -- 子类如果没有构造函数,将自动执行父类的,但如果有构造函数将覆盖父类的.此时必须通过super()函数调用父类的构造函数,以确保父类属性被正常

Python面向对象学习

以下面例子作为面向对象基础介绍,类比java里的面向对象既可以,大同小异 class Employee(): raiseAmount=1.04 employeeNum=0 def __init__(self,first,surname,salary):#相当于java里面的结构体,self可以理解为this self.first = first #属性 self.surname = surname self.salary = salary self.email = first + '.' + s

python 面向对象基础梳理三 继承、派生与组合

什么是继承 继承是一种创建新类的方式,是一种什么是什么的关系,继承的功能之一就是解决代码重用的问题,继承是一种创建新类的方式,在python 中,新建的一个类可以继承一个或者多个父类,父类由可以成为基类或者超类,新建的类称为派生类或子类. 继承的分类 继承可以分为 单继承和多继承,Python 2 和 python 3 中有经典类和新式类的区分,这里描述的是python3 示例演示 # 输入 class Pare1class: pass class Pare2class: pass class

python面向对象-4类的继承与方法的重载

1.类的继承与方法的重载 上面就是先定义了一个类A,然后由定义了一个类B,B继承了类A,这样B就有了A的非私有属性和方法. 1 class Washer: 2 company='ZBL' 3 def __init__(self,water=10,scour=2): 4 self._water=water #不想让用户直接访问实例变量,可以标志成私有 5 self.scour=scour 6 self.year=2000#这是生产日期 7 #属性包装,将water属性包装成方法,用户使用water