深入了解Python的继承

目录
  • 面向对象三大特性:
  • 1、单继承
    • 1.1 继承的概念、语法和特点
      • 1)、继承的语法
      • 2)、专业术语
  • 总结

面向对象三大特性:

  • 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中;
  • 继承 实现代码的重用,相同的代码不需要重复的编写;
  • 多态 不同的对象调用相同的方法,产生不同的执行结果,增加代码的灵活性;

1、单继承

1.1 继承的概念、语法和特点

继承的概念:子类 拥有 父类 的所有 方法 和 属性;

不使用继承类

class Animal:
   def eat(self):
       print("吃")
   def drink(self):
       print("喝")
   def run(self):
       print("跑")
   def sleep(self):
       print("睡")
class Dog:
   def eat(self):
        print("吃")
   def drink(self):
        print("喝")
   def run(self):
        print("跑")
   def sleep(self):
        print("睡")
   def bark(self):
        print("汪汪叫")
# 创建一个对象 - 狗对象
wangcai = Dog()
wangcai.eat()
wangcai.drink()
wangcai.run()
wangcai.sleep()
wangcai.bark()

1)、继承的语法

class 类名(父类名):
     pass

子类 继承自 父类,可以直接 享受 父类中已经封装好的方法,不需要再次开发;

子类 中应该根据 职责,封装 子类特有的 属性和方法;

使用继承类:

class Animal:
   def eat(self):
       print("吃---")
   def drink(self):
       print("喝---")
   def run(self):
       print("跑---")
   def sleep(self):
       print("睡---")
class Dog(Animal):
   # 子类拥有父类的所有属性和方法
    # def eat(self):
    #     print("吃")
    #
    # def drink(self):
    #     print("喝")
    #
    # def run(self):
    #     print("跑")
    #
    # def sleep(self):
    #     print("睡")
   def bark(self):
        print("汪汪叫")
# 创建一个对象 - 狗对象
wangcai = Dog()
wangcai.eat()
wangcai.drink()
wangcai.run()
wangcai.sleep()
wangcai.bark()

2)、专业术语

Dog 类 Animal 类的子类 ,Animal 类是 Dog 类的父类,Dog 类 从 Animal 类继承;

Dog 类 Animal 类的派生类,Animal 类是 Dog 类的基类,Dog 类从 Animal 类派生;

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • python接口,继承,重载运算符详解

    目录 1. 序列__getitem__ 2. __setitem__ 3. 抽象基类 4. 不要直接子类化内置类型 5. 继承顺序 6. 重载运算符 总结 1. 序列__getitem__ 如果没有 __iter__ 和 __contains__ 方法, Python 会调用 __getitem__ 方法, 设法让 迭代 和 in 运算符可用 class Foo: def __getitem__(self, pos): return range(0, 30, 10)[pos] f = Foo()

  • Python面向对象编程之类的继承

    目录 1.对继承的理解 2.类继承的构建 3.Python中最基础的类 4.ython类的重载 4.1 属性重载 4.2 方法重载 5.类的多继承 1.对继承的理解 继承(Inheritance) :代码复用的高级抽象 继承是面向对象设计的精髓之一 实现了以类为单位的高级抽象级别代码复用 继承是新定义类能够几乎完全使用原有类属性与方法的过程 不管是基类还是派生类,只是一种继承说法,这都是普通的Python类 也可以按子类.父类和超类划分. 最基础的类是基类,经过一次继承得出派生类,还可以再一次继

  • Python基础知识学习之类的继承

    一.继承的格式 类的继承格式如下,括号中的为父类名. class 类名(父类名): 代码 二.单继承 下面我们让Man继承自Master类,并调用继承的showSkill方法. class Master(): def __init__(self): self.skill='炒菜' def showSkill(self): print(self.skill) class Man(Master): pass man=Man() man.showSkill() 炒菜 三.多继承 我们可以在括号中写入多

  • python面向对象之类的继承详解

    一.概述 面向对象编程 (OOP) 语言的一个主要功能就是"继承".继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展. 通过继承创建的新类称为"子类"或"派生类",被继承的类称为"基类"."父类"或"超类",继承的过程,就是从一般到特殊的过程.在某些 OOP 语言中,一个子类可以继承多个基类.但是一般情况下,一个子类只能有一个基类,要实

  • Python面向对象三大特征 封装、继承、多态

    目录 1.封装 1.1 私有属性和私有方法 2.继承 2.1 方法的重写 2.2 在子类方法中调用父类方法 2.3 多继承 2.4 新式类和经典类 3.多态 1.封装 封装: 根据 职责 将 属性 和 方法 封装到一个 抽象的类 中将数据(属性)和行为(方法)包装到类对象中.在方法内部对属性进行操作,在类对象的外部调用方法.这样无需关心方法 内部的具体实现,从而隔离了复杂度 封装是面向对象编程的一大特点 面向对象编程的第一步.将属性和方法封装到一个抽象的类中 外界使用类创建对象,然后让对象调用方

  • python的继承详解

    目录 1.单继承:子类只继承一个父类 2.多继承:子类继承多个父类 3.子类重写父类的同名属性和方法 4.子类调用父类同名属性和方法 5. 6.调用父类方法super() 总结 1.单继承:子类只继承一个父类 举例:煎饼果子老师傅在煎饼果子界摸爬滚打几十年,拥有一身精湛的煎饼果子技术, 并总结了一套"古法煎饼果子配方". 可是老师傅年迈已久, 在嗝屁之前希望把自己的配方传承下去,于是老师傅把配方传给他的徒弟大猫... 虽然子类没有定义__init__方法初始化属性,也没有定义实例方法,

  • python类继承用法实例分析

    本文实例讲述了python类继承用法.分享给大家供大家参考.具体方法如下: #!/usr/bin/python # Filename: inherit.py class SchoolMember: '''Represents any school member.''' def __init__(self, name, age): self.name = name self.age = age print'(Initialized SchoolMember: %s)'% self.name def

  • python类继承与子类实例初始化用法分析

    本文实例讲述了python类继承与子类实例初始化用法.分享给大家供大家参考.具体分析如下: [ 先贴参考书籍原文(中文英文对照)] __init__方法介绍: If a base class has an __init__() method the derived class's __init__() method must explicitly call it to ensure proper initialization of the base class part of the insta

  • python多继承(钻石继承)问题和解决方法简单示例

    本文实例讲述了python多继承(钻石继承)问题和解决方法.分享给大家供大家参考,具体如下: 在菱形多继承中,如果用父类.__init__()来调用父类的初始化方法,最上层会执行两次,所以遇到这种情况,python中用super.__init__()来解决这个问题. # -*- coding:utf-8 -*- #! python3 class Grand_father(object): def __init__(self): print('爷爷') class Father_left(Gran

  • Python多继承原理与用法示例

    本文实例讲述了Python多继承原理与用法.分享给大家供大家参考,具体如下: python中使用多继承,会涉及到查找顺序(MRO).重复调用(钻石继承,也叫菱形继承问题)等 MRO MRO即method resolution order,用于判断子类调用的属性来自于哪个父类.在Python2.3之前,MRO是基于深度优先算法的,自2.3开始使用C3算法,定义类时需要继承object,这样的类称为新式类,否则为旧式类 从图中可以看出,旧式类查找属性时是深度优先搜索,新式类则是广度优先搜索 C3算法

  • Python类继承和多态原理解析

    这篇文章主要介绍了python类继承和多态原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 现在属于是老年人的脑子,东西写着写着就忘了,东西记着记着就不知道了.之前学C++的时候就把类.对象这块弄得乱七八糟,现在是因为很想玩python,所以就看看python的类和对象. 就像说的,类有三个特征:封装.继承.多态. 1.封装:类封装了一些方法,可通过一定的规则约定方法进行访问权限. C++中的成员变量有public.private.pto

  • Python异常继承关系和自定义异常实现代码实例

    这篇文章主要介绍了Python异常继承关系和自定义异常实现代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 主要介绍 python 中异常的继承关系,及如何自定义异常 1. 异常的继承关系 BaseException # 所有异常的基类 +-- SystemExit # 解释器请求退出 +-- KeyboardInterrupt 用户中断执行(通常是输入^C) +-- GeneratorExit # 生成器(generator)发生异常来

  • Python 多继承中的一个诡异现象 既是 Father又是grandfather

    目录 我们知道,在面向对象编程里面, 继承 是一个很重要的概念.子类可以使用父类的方法和属性. 例如下面这段代码: class Father: def __init__(self): self.address = '上海' def say(self): print('我是爸爸') class Son(Father): def __init__(self): super().__init__() def say(self): print('我是儿子') son = Son() print(son.

  • python的继承知识点总结

    python继承,python丰富的类因为继承而变得多姿多彩,如果语言不支持继承,那么类就没什么优势. 1.首先我们来定义两个类 一个dog类,一个bird类class Dog:    def sleeping(self):        print ('dog 正在睡觉')    def speaking(self):        print('汪汪')class Bird:    def flying(self):        print('正在飞')    def speaking(s

  • Python多继承以及MRO顺序的使用

    多继承以及MRO顺序 1. 单独调用父类的方法 # coding=utf-8 print("******多继承使用类名.__init__ 发生的状态******") class Parent(object): def __init__(self, name): print('parent的init开始被调用') self.name = name print('parent的init结束被调用') class Son1(Parent): def __init__(self, name,

  • Python基础类继承重写实现原理解析

    1.继承 继承是面向对象三大特性之一 - 通过继承我们可以使用一个类获取到其他类中的属性和方法 - 在定义类时,可以在类名后的括号中指定当前类的父类(超类.基类.super) - 子类(衍生类)可以直接继承父类中的所有的属性和方法 注意事项: a.在创建类时,如果省略了父类,则默认父类为object, object是所有类的父类,所有类都继承自object. b. isinstance()用来检查一个对象是否是一个类的实例 如果这个类是这个对象的父类,也会返回True 所有的对象都是object

随机推荐