对python中类的继承与方法重写介绍

1.单继承

父类也叫基类

子类也叫派生类

如下所示,继承的关系:

继承的书写格式:

class 子类(父类):

     方法

实例:

class Animal:
    def eat(self):
       print("-----吃-------")
    def drink(self):
       print("-----喝--------")
class Dog(Animal):
     def drak(self):
       print("汪汪叫")
a=Animal()
a.eat()

孙类是可以继承爷爷类的,如下所示:

class Animal:
 def eat(self):
 print("---吃-----")
 def drink(self):
 print("----喝-----")
 def sleep(self):
 print("----睡觉-----")
class Dog(Animal):
 def bark(self):
 print("---汪汪叫----")

class Xiaotq(Dog):
 def fly(self):
 print("----飞-----")

xiaotq = Xiaotq()
xiaotq.fly()
xiaotq.bark()
xiaotq.eat() 

2.重写

子类和父类中拥有方法名相同的方法,说明子类重写了父类的方法

重写的作用:父类中已经有了这个方法,但子类想修改里面的内容,直接修改父类是不好的,就需要用到重写

例如:

class Animal:
 def eat(self):
 print("---吃-----")
 def drink(self):
 print("----喝-----")
 def sleep(self):
 print("----睡觉-----")
class Dog(Animal):
 def bark(self):
 print("---汪汪叫----")

class Xiaotq(Dog):
 def fly(self):
 print("----飞-----")
 def bark(self):
 print("----狂叫-----")

xiaotq = Xiaotq()
xiaotq.fly()
xiaotq.bark()
xiaotq.eat() 

这样做,父类的方法是不会被调用的,需要用以下方式:

class Animal:
 def eat(self):
 print("---吃-----")
 def drink(self):
 print("----喝-----")
 def sleep(self):
 print("----睡觉-----")
class Dog(Animal):
 def bark(self):
 print("---汪汪叫----")

class Xiaotq(Dog):
 def fly(self):
 print("----飞-----")
 def bark(self):
 print("----狂叫-----")
 #调用被重写的父类的方法
 #1 必须加上self
 Dog.bark(self)
 #2
 super().bark()

xiaotq = Xiaotq()
xiaotq.fly()
xiaotq.bark()
xiaotq.eat() 

以上这篇对python中类的继承与方法重写介绍就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python面向对象_详谈类的继承与方法的重载

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

  • Python面向对象类的继承实例详解

    本文实例讲述了Python面向对象类的继承.分享给大家供大家参考,具体如下: 一.概述 面向对象编程 (OOP) 语言的一个主要功能就是"继承".继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展. 通过继承创建的新类称为"子类"或"派生类",被继承的类称为"基类"."父类"或"超类",继承的过程,就是从一般到特殊的过程.在某些 OOP

  • Python实现通过继承覆盖方法示例

    本文实例讲述了Python实现通过继承覆盖方法.分享给大家供大家参考,具体如下: Python真是太动态了,所有的方法默认都是虚的.子类定义父类同名函数之后,父类函数被覆盖. class P(object): def foo(self): print "I am a P-foo()" class C(P): def foo(self): print "I am a C-foo()" >>>p=P() >>>c=C() >&g

  • Python 的类、继承和多态详解

    类的定义 假如要定义一个类 Point,表示二维的坐标点: # point.py class Point: def __init__(self, x=0, y=0): self.x, self.y = x, y 最最基本的就是 __init__ 方法,相当于 C++ / Java 的构造函数.带双下划线 __ 的方法都是特殊方法,除了 __init__ 还有很多,后面会有介绍. 参数 self 相当于 C++ 的 this,表示当前实例,所有方法都有这个参数,但是调用时并不需要指定. >>&g

  • Python类定义和类继承详解

    一.类定义: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性 如果直接使用类名修改其属性,那么将直接影响到已经实例化的对象   类的私有属性: __private_attrs  两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问 在类内部的方法中使用时 self.__private_attrs    类的方法 在类地内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数self,

  • python类的继承实例详解

    python 类的继承 对于许多文章讲解python类的继承,大多数都是说一些什么oop,多态等概念,我认为这样可能对有一定基础的开发者帮助不是那么大,不如直接用在各种情况下所写的代码,来展示对于某一种代码情况,代码运行会有什么效果.这样可能对开发者的帮助更大.不说废话,直接上代码. 这里不区分经典类和新式类,下面分析的对新式类和经典类都适用 对于类中的__init__函数,只是一个初始化是调用的一个函数(ps:初始化和创建实例并不是一个过程,实例的创建是通过一个create函数来完成的),如果

  • Python类的继承和多态代码详解

    Python类的继承 在OOP(ObjectOrientedProgramming)程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Baseclass.Superclass). 我们先来定义一个classPerson,表示人,定义属性变量name及sex(姓名和性别): 定义一个方法print_title():当sex是male时,printman:当sex是female时,prin

  • 对python中类的继承与方法重写介绍

    1.单继承 父类也叫基类 子类也叫派生类 如下所示,继承的关系: 继承的书写格式: class 子类(父类): 方法 实例: class Animal: def eat(self): print("-----吃-------") def drink(self): print("-----喝--------") class Dog(Animal): def drak(self): print("汪汪叫") a=Animal() a.eat() 孙类

  • 一文轻松了解Python中类的继承

    目录 1. 单继承 2. 继承中的方法重写 3. 多继承 总结 1. 单继承 继承的主要作用是实现代码的重用.继承使得子类拥有父类的方法和属性.直接来看一个例子吧. class animal: def eat(self): print("吃") def drink(self): print("喝") class dog(animal): def dark(self): print("汪汪叫") goudan = dog() goudan.eat(

  • Python反射和内置方法重写操作详解

    本文实例讲述了Python反射和内置方法重写操作.分享给大家供大家参考,具体如下: isinstance和issubclass isinstance(obj,cls)检查是否obj是否是类 cls 的对象,类似 type() class Foo(object): pass obj = Foo() isinstance(obj, Foo) issubclass(sub, super)检查sub类是否是 super 类的派生类 class Foo(object): pass class Bar(Fo

  • Python类的继承与多态详细介绍

    目录 概念 类的创建 类的继承 多态的使用 概念 类(Class): 用来描述具有相同的属性和方法的对象的集合. 类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在函数体之外.类变量通常不作为实例变量使用. 类有一个名为 __init__() 的特殊方法(构造方法),该方法在类实例化时会自动调用 self:self 代表的是类的实例,代表当前对象的地址,而 self.class 则指向类. 类调用 Car.weight 实例化  car01=Car(5) 实例对象调用  car01

  • Python中类的初始化特殊方法

    什么是特殊方法?当我们在设计一个类的时候,python中有一个用于初始化的方法$__init__$,类似于java中的构造器,这个就是特殊方法,也叫作魔术方法.简单来说,特殊方法可以给你设计的类加上一些神奇的特性,比如可以进行python原生的切片操作,迭代.连乘操作等.在python中,特殊方法以双下划线开始,以双下划线结束. 一个大例子 数学中有一个表示数的概念叫做向量,但是python中的数据类型却没有.我们来设法用python实现它. 首先考虑,向量跟普通的数据类型不同,传统的数可以直接

  • Python中类的继承代码实例

    相对于C++的继承编写,Python更简洁,而且效率也是很高的,下面编写一个简单Python的继承例子. 复制代码 代码如下: #!/usr/bin/python   #filename: pyclass.py     class Member:           def __init__(self, name, age):                   self.name = name                   self.age = age                  

  • python中类的属性和方法介绍

    Python-类属性,实例属性,类方法,静态方法,实例方法 类属性和实例属性 #coding:utf-8 class Student(object): name = 'I am a class variable' #类变量 >>> s = Student() # 创建实例s >>> print(s.name) # 打印name属性,因为实例并没有name属性,所以会继续查找class的name属性 Student >>> print(Student.n

  • python3中类的继承以及self和super的区别详解

    python中类的继承: 子类继承父类,及子类拥有了父类的 属性 和 方法. python中类的初始化都是__init__().所以父类和子类的初始化方式都是__init__(),但是如果子类初始化时没有这个函数,那么它便调用父类的__init__():如果实现了这个函数,就会覆盖父类的初始化函数.如果继承父类的__init__(),就需要在子类中显示调用这个函数.实现如下: class Animal(object): def __init__(self): self.name = "我是父类&

  • Python面向对象之继承和组合用法实例分析

    本文实例讲述了Python面向对象之继承和组合用法.分享给大家供大家参考,具体如下: 面向对象的组合用法 软件重用的重要方式除了继承之外还有另外一种方式,即:组合 组合指的是,在一个类中以另外一个类的对象作为数据属性,称为类的组合 圆环是由两个圆组成的,圆环的面积是外面圆的面积减去内部圆的面积.圆环的周长是内部圆的周长加上外部圆的周长. 这个时候,我们就首先实现一个圆形类,计算一个圆的周长和面积.然后在"环形类"中组合圆形的实例作为自己的属性来用 # -*-coding:utf-8 -

随机推荐