继承:子类继承父类的属性和方法  class 子类名(父类1,父类2)

多态:子类重写父类的方法

判断对象是否是某个类的实例:  isinstance(object,class)

父类-汽车类

#coding:utf-8
#/usr/bin/python
"""
2018-11-18
dinghanhua
继承 多态
""" '''定义一个父类-汽车类 无参构造函数,私有属性speed,方法start,speedup(每次速度+10),speeddown(每次速度-10),stop'''
class auto:
def __init__(self):
self.__speed = 0 #封装 def __getspeed(self):
return '当前速度:%s'%self.__speed def start(self):
self.__speed = 10 def stop(self):
self.__speed = 0
print('auto 停车') def speedup(self):
self.__speed += 10
print('auto 加速' + self.__getspeed()) def speeddown(self):
if self.__speed > 10:
self.__speed -= 10
print('auto 减速' +self.__getspeed())
else:
self.stop()

子类bus

'''子类bus(auto),增加乘客数量passenger,上车geton,下车getoff.重写start方法--多态'''
class bus(auto): #继承 def __init__(self):
self.passenger = 0 #当前乘客数
self.maxpassenger = 50 # 最大乘客数 def start(self):
print('bus 出发')
auto.start(self) def geton(self,num):
if self.passenger + num <= self.maxpassenger:
self.passenger += num
print('bus 上客,当前乘客数:%s' % self.passenger)
else:
raise OverflowError('bus 超载') def getoff(self,num):
if self.passenger >= num:
self.passenger -= num
print('bus 下客,当前乘客数:%s' % self.passenger)
else:
raise Exception('bus 下车乘客数 多于 当前乘客数')

子类car

'''子类car,重写start方法'''
class car(auto):
def __init__(self):
self.maxpassenger = 4 #最大乘客数 def start(self):
print('car 出发')
auto.start(self)

car,bus的子类taxi

'''子类taxi继承自car,bus'''
class taxi(car,bus): #多重继承,先继承car,再继承bus
def __init__(self):
bus.__init__(self)
car.__init__(self) #注意顺序,最大乘客数=4

函数参数为对象

'''定义一个函数,参数是auto对象'''
def test_auto(autoobject):
autoobject.start()
autoobject.speedup()
autoobject.speeddown()
autoobject.stop()
if isinstance(autoobject, bus): #判断是某个类的实例
autoobject.geton(4)
autoobject.getoff(2)

实例化对象

if __name__ == '__main__':

    #实例化
auto1 = auto()
car1 = car()
bus1 = bus()
taxi1 = taxi()
    #调用函数test_auto
test_auto(auto1)

    test_auto(car1)

test_auto(bus1) 

test_auto(taxi1)

分别调用的是:car.start(), auto.speedup(),auto.speeddown(),auto.stop(), bus.geton(),bus.getoff()

the end!

python入门18 继承和多态的更多相关文章

  1. Python 面向对象编程 继承 和多态

    Python 面向对象编程 继承 和多态 一:多继承性 对于java我们熟悉的是一个类只能继承一个父类:但是对于C++ 一个子类可以有多个父亲,同样对于 Python一个类也可以有多个父亲 格式: c ...

  2. Python 中的继承、多态和封装

    涉及问题: Python 中如何实现多继承,会有什么问题? Python 中的多态与静态方法有什么区别? 答案要点如下: Python 中的继承,就是在定义类时,在括号中声明父类,简单示例如下: cl ...

  3. Python面向对象:继承和多态

    继承与多态简介: 继承可以把父类的所有功能都直接拿过来,这样就不必重零做起,子类只需要新增自己特有的方法,也可以把父类不适合的方法覆盖重写. 动态语言的鸭子类型特点决定了继承不像静态语言那样是必须的. ...

  4. python类的继承和多态

    现在属于是老年人的脑子,东西写着写着就忘了,东西记着记着就不知道了.之前学C++的时候就把类.对象这块弄得乱七八糟,现在是因为很想玩python,所以就看看python的类和对象. 就像说的,类有三个 ...

  5. Python入门之面向对象的多态和继承

    本章内容 Python面向对象的多态和继承对比 ========================================= 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的 ...

  6. python中的继承和多态

    继承 继承的表现方式: class Animal(): pass class Cat(Animal): #animal是cat的父类,也可以说是基类 pass print(Cat.__bases__) ...

  7. Python笔记(三)继承和多态、动态语言

    一.继承 先定义一个A类 class A(object): def fun(self): print "Run A fun()" 在定义一个B类 class B(A): pass ...

  8. python大法好——继承、多态

    1.继承 类的继承 面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制. 通过继承创建的新类称为子类或派生类,被继承的类称为基类.父类或超类. 继承语法 class 派 ...

  9. Python入门之面向对象的多态

    本章目录: 一.多态 二.多态性 三.鸭子类型 ============================== 一.多态 多态指的是一类事物有多种形态. 动物有多种形态:人,狗,猪. import ab ...

随机推荐

  1. python爬虫之趟雷

    python爬虫之趟雷整理 雷一:URLError 问题具体描述:urllib.error.URLError: <urlopen error [Errno 11004] getaddrinfo ...

  2. Python I/O及FIle方法

    一.文件操作 文件的编码格式: ASCII与UNICODE: 计算机有256个ASCII字符(8个0/1的排列组合方式一共有256种, 2**8) UTF-8是UNICODE的一种编码格式,计算机中使 ...

  3. oracle基础知识(六)----spfile与pfile

    一, 认识参数文件      Oracle中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件.它们是在数据库实例启动时候加载的,决定了数据库的物理 结构.内存.数据库的限制及系统大量的默认值 ...

  4. GreenPlum 大数据平台--运维(二)

    .如何获取查询运行时和已用时间. 例子: Select tstart, tfinish, (tfinish-tstart) as total_time, trim(query_text) from q ...

  5. hibernate离线查询DetachedCriteria清除上次的查询条件

    1 原例概述 别名重复问题之后,我们还需要解决的问题就是: 如何清除hibernate的上次查询条件,如果不清除,将会导致上次的查询条件和下次的查询条件合并到了一起. 上次的查询条件和本次的查询条件合 ...

  6. 【python数据分析】利用Anaconda在window上搭建数据分析环境

    由于在进行数据分析过程中,需要安装一些第三方库,导致python总会报一些错误,现将通过利用Anaconda搭建数据分析环境,已测可用. 1.到官网上下载python:https://www.pyth ...

  7. HttpServlet的请求转发理解

    一个http请求的流转,其实主要涉及到五部分的内容,第一部分就是request所包含的参数,也就是request.getAttribute能获取的东西:第二部分是request所携带的内容实体,这部分 ...

  8. memcached分布式部署

    memcache和memcached两者使用起来几乎一模一样. $mem = new Memcache; $mem->addServer($memcachehost, '11211'); $me ...

  9. jquery获取元素与屏幕高度距离

    a. onscroll事件 scroll是css样式中overflow的一个值,意思是显示滚动条;当一个元素的实际高度超过他的最大高度是,只要设置了overflow为scroll b. $(..).s ...

  10. axios请求报Uncaught (in promise) Error: Request failed with status code 404

    使用axios处理请求时,出现的问题解决 当url是远程接口链接时,会报404的错误: Uncaught (in promise) Error: Request failed with status ...