2.继承性

继承:

使用场景:

1).生活层面:。。。

2).计算机层面:

两部分组成,一部分我们称为父类(基类、超类、superclass),另一部分我们称为子类(派生类、subclass),

子类可以使用父类中的成员(使用权)

继承性的好处:

1).代码复用性变强

2).代码扩展性变强

3).代码维护性变好

4).代码阅读性变好

继承性弊端:

类和类之间是一种强耦合关系

继承的好处要远远多于弊端,所以我们还是要经常使用继承的(合理),切记不能为了继承而继承

分析:

继承体系可以很庞大(呈现树状结构图),

越往上层的类,感觉越模糊,越不清晰

越往下层的类,感觉越清晰,越具体

所以得出结论,在之后的开发过程中创建父类的可能性变低,子类实例化的可能性极高

演示单继承的结构和使用:
父类:Person
子类:Teacher
class Person:
def __init__(self,name,age):
print('我是Person类的构造...')
self.name=name
self.age=age #吃和睡
def eat(self):
print('吃一个...') def sleep(self):
print('睡一个...')
代码:(Person),就让Teacher类和Person发生继承关系
Person:父类
Teacher:子类
class Teacher(Person):
def __init__(self,name,age,salary):
print('我是Teacher类的构造...')
self.salary=salary
'''
为了给父类Person中的name和age属性赋值,
所以我们需要在子类构造函数中显示的调用父类构造来实现
关键字:super
'''
super().__init__(name,age)
# super(Teacher, self).__init__(name,age)
# Person.__init__(self,name,age) #教书
def teach(self):
print('教书育人...') #实例化子类对象-->Teacher对象
t=Teacher('joy',34,10000.0) #调用父类的属性
print(t.name,t.age) #调用子类的属性
print(t.salary) #调用父类函数
t.eat()
t.sleep() #调用子类的函数
t.teach()
返回目录

python第四十四课——继承性之单继承的更多相关文章

  1. python第四十五课——继承性之多继承

    测试模块 演示多继承的结构和使用: 子类:Child 直接父类(多个):Father.Mother 注意: 由于有多个直接父类,多个父类都要自己给其属性赋值, 避免混淆,我们使用类名.__init__ ...

  2. python第四十五课——继承性之多重继承

    演示多重继承的结构和使用 子类:Dog 直接父类:Animal 间接父类:Creature #生物类 class Creature: def __init__(self,age): print('我是 ...

  3. NeHe OpenGL教程 第四十八课:轨迹球

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  4. NeHe OpenGL教程 第四十五课:顶点缓存

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  5. NeHe OpenGL教程 第四十六课:全屏反走样

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  6. centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobackupex/Xtrabackup 第四十节课

    centos   shell编程6一些工作中实践脚本   nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志  直接送给bc做计算  gzip  innobacku ...

  7. NeHe OpenGL教程 第四十四课:3D光晕

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  8. NeHe OpenGL教程 第四十二课:多重视口

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  9. 孤荷凌寒自学python第八十四天搭建jTessBoxEditor来训练tesseract模块

    孤荷凌寒自学python第八十四天搭建jTessBoxEditor来训练tesseract模块 (完整学习过程屏幕记录视频地址在文末) 由于本身tesseract模块针对普通的验证码图片的识别率并不高 ...

随机推荐

  1. [转]Magento2开发教程 - 如何向数据库添加新表

    本文转自:https://www.cnblogs.com/xz-src/p/6920365.html Magento 2具有特殊的机制,允许你创建数据库表,修改现有的,甚至添加一些数据到他们(如安装数 ...

  2. Python删除文件及进行文件夹压缩

    示例效果: 项目编译发布后,删除部分配置文件,然后做成发布文件的压缩包. # -*- coding: UTF-8 -*- import os,sys import zipfile import dat ...

  3. 为MVC应用程序创建导航条

    今晚写点什么呢?对于以前的练习,看来看去,好象还差一个菜单导航条.在练习的站点中,有创建了三个控制器,我们就用它们来创建一个导航条吧.想实现这导航条,刚开始还是有点难,还是想起以前ASP.NET的Me ...

  4. LINUX 下Jexus部署ASP.NET Core WebApi

    服务器:LINUX  ubuntu16.04  开发软件:VS2015 Update3   dotnet sdk: DotNetCore.1.0.0-VS2015Tools.Preview2   1. ...

  5. Selenium使用总结(Java版本)

    硒在最近的发展中被广泛应用,因为它以前没有被使用过,并且已经走了太多的坑.这是一张唱片. 1.环境配置 配置要点: 1.Web驱动程序应该与浏览器版本相对应,chrome使用chrome驱动程序和ch ...

  6. Fibonacci(矩阵)

    Fibonacci Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u   Descrip ...

  7. BZOJ4373: 算术天才⑨与等差数列(线段树 hash?)

    题意 题目链接 Sol 正经做法不会,听lxl讲了一种很神奇的方法 我们考虑如果满足条件,那么需要具备什么条件 设mx为询问区间最大值,mn为询问区间最小值 mx - mn = (r - l) * k ...

  8. js-redux学习笔记

    1.action creator 就是函数,负责构建一个 action (是的,action creator 这个名字已经很明显了)并返回它. var actionCreator = function ...

  9. JS 实现四舍五入保留两位小数并且添加千位分隔符

    var a = "-123456789.078";a = (Math.round(a * 100) / 100).toFixed(2).toString().replace(/(\ ...

  10. git push报错error: failed to push some refs to 'git@github.com'

    git push报错error: failed to push some refs to 'git@github.com' $ git push -u origin master To git@git ...