一.内容回顾

  初识继承

    父类\基类\超类

    子类\派生类

    派生 :派生方法.派生属性

    单继承

      继承的语法class子类名(父类名)

      解决开发中代码冗余的问题

      子类继承了父类之后,可以调用父类中的方法

      如果子类的对象调用某个方法:对象/自己类/父类

      如果子类的对象调用的某个方法父子类中都有:

        正常情况下是用自己的

        想用父类的:

          super().方法名()

          父类名.方法名(self)

      继承表达的是两个类之间 父类子类的关系

二.今日内容

    抽象类:规则

      约束了所有继承这个抽象类的子类必须实现某些同名方法

# from abc import ABCMeta,abstractmethod
# class Abstract(metaclass=ABCMeta): # metaclass 元类
# @abstractmethod
# def func_name(self):
# print('继承Abstract的子类中必须有一个func_name的方法')
# class Son(Abstract):
# def func_name(self):
# print('继承了Abstract就必须写一个func_name方法')

    接口类(对多个抽象类的多继承)    

# class Abstract1(metaclass=ABCMeta):   # metaclass 元类
# @abstractmethod
# def wahaha(self):
# print('继承Abstract1的子类中必须有一个wahaha的方法')
# class Abstract2(metaclass=ABCMeta): # metaclass 元类
# @abstractmethod
# def qqxing(self):
# print('继承Abstract2的子类中必须有一个qqxing的方法')
# class Son(Abstract1,Abstract2):
# def wahaha(self):
# print('继承Abstract1的子类中必须有一个wahaha的方法')
# def qqxing(self):
# print('继承Abstract2的子类中必须有一个qqxing的方法')
# 归一化设计
# class Student:
# def login(self):pass
# class Teacher:
# def login(self):pass
# def login(obj):
# obj.login()
# a = Student()
# a.login()
# b = Teacher()
# b.login()
# c3算法
# 求某一类在多继承中的继承顺序:
# 类的mro== [类] + [父类的继承顺序] + [父类2的继承顺序]....
# 如果从左到右的第一个类在后面的顺序中都没出现,那么就提出来到mro顺序中
# [ABCD] + [EO] --> A = [BCD] + [EO]
# 如果从左到右的第一个类在后面的顺序中出现,且在后面的顺序中也是第一位,那么就提出来到mro顺序中
# [ABCD] + [AEO] --> A = [BCD] + [EO]
# 如果从左到右的第一个类在后面的顺序中出现,但不是在第一位,那么应该继续往后找,找到符合规则的项目
# [ABCD] + [EAO] --> E = [ABCD] + [AO]
# [ABCD] + [EAO] + [GEO] --> G = [ABCD] + [EAO] + [EO]
# [ABCD] + [EAO] + [EO] --> GE = [ABCD] + [AO] + [O]
# 关键结论:
# 这个类没有发生继承,他的顺序永远是[类O]
# 只要是单继承,不是多继承,那么mro顺序就是从子类到父类的顺序

day29 Pyhton 面向对象 继承进阶的更多相关文章

  1. day30 Pyhton 面向对象 继承.装饰器

    一面向对象相关 谈谈你对面向对象的理解 1.泛泛谈:什么情况下使用面向对象 2.针对面向对象的 封装 继承 多态一个一个的谈 3.根据你工作中的实际情况对应来举例子 封装 1.广义上:普遍的大家认为的 ...

  2. day28 Pyhton 面向对象 继承

    1.昨日回顾 类的命名空间 静态属性\动态属性(方法) 对象的命名空间 #对象的属性 #类指针:对象能够通过这个类指针找到类 #静态属性:属于类,多个对象共享这个资源 #尽量用类名来操作静态属性 #对 ...

  3. day29 Pyhton 面向对象 多态 封装

    # coding:utf-8 # py2中的经典类 # class D:#没有继承object是经典类# pass # # def func(self): # # print('d') # class ...

  4. [.net 面向对象程序设计进阶] (13) 序列化(Serialization)(五) Json 序列化利器 Newtonsoft.Json 及 通用Json类

    [.net 面向对象程序设计进阶] (13) 序列化(Serialization)(五) Json 序列化利器 Newtonsoft.Json 及 通用Json类 本节导读: 关于JSON序列化,不能 ...

  5. [.net 面向对象程序设计进阶] (7) Lamda表达式(三) 表达式树高级应用

    [.net 面向对象程序设计进阶] (7) Lamda表达式(三) 表达式树高级应用 本节导读:讨论了表达式树的定义和解析之后,我们知道了表达式树就是并非可执行代码,而是将表达式对象化后的数据结构.是 ...

  6. python学习第十六天 --继承进阶篇

    这一章节主要讲解面向对象高级编程->继承进阶篇,包括类多继承介绍和继承经典类和新式类属性的查找顺序不同之处. 多继承 上一章节我们讲到继承,子类继承父类,可以拥有父类的属性和方法,也可以进行扩展 ...

  7. python面向对象编程进阶

    python面向对象编程进阶 一.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 1 ...

  8. 【转】python 面向对象(进阶篇)

    [转]python 面向对象(进阶篇) 上一篇<Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 ...

  9. python 继承进阶

    继承进阶 面向对象 1.类:具有相同属性和方法 的一类事物 类名可以实例化一个对象 类名可以调用类属性,(静态属性 和(方法)动态属性) 2.对象:也就是实例    对象名:调用对象属性 调用方法 3 ...

随机推荐

  1. 获取.properties配置文件属性值

    public class TestProperties { /** * * @Title: printAllProperty * @Description: 输出所有配置信息 * @param pro ...

  2. Python中的type(),isinstance,()dir(),的区别

    1.type() type(),获取一个变量的类型,返回值为:<class '类名'>,属于class类型2.isinstance() isinstance(),判断一个对象是否属于某种数 ...

  3. Java链接db2套接字出错

    ### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could ...

  4. python 3 for嵌套

  5. 想写一篇jvm的工具入门

    为什么要写一个jvm的工具入门呢,一是自己也不会,二是因为不会所以想学一下,还有就是这个确实很重要,对学习jvm有很多的用处,对定位问题有很大的便利,以前毕业那会我记得有个笔试,知道JAVA_HOME ...

  6. 学习使用PSTools工具中的psping

    目录 初识PsTools psping 1.使用ICMP ping 2.使用TCP ping 3.延迟测试 4.带宽测试 5.同功能的tcping工具 总结 初识PsTools     在工作中我们都 ...

  7. 4.Strom-可靠性保证

  8. 在Notepad++中配置python运行环境

    1.当然首先还是需要先安装Python软件包的,推荐Python 3.X 2.打开Notepad++,[运行]--[运行],或者直接按F5快捷键,输入如下命令: cmd /k cd /d " ...

  9. KONGA下的HAMC插件功能 --JAVA代码实现

    设置HAMC插件 postman模拟请发发送:  Java代码: HMAC-SHA-256工具类 1 import java.security.InvalidKeyException; 2 impor ...

  10. 轻轻松松学CSS:overflow

    一.overflow的定义 overflow,音[əʊvəˈfləʊ],义[溢出],就像2.2米的人躺在1.8米的床上,腿得耷拉到床外一样.overflow 属性用于控制内容溢出容器时显示的方式 二. ...