在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,
新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。
比如,我们已经编写了一个名为Animal的class,有一个run()方法可以直接打印:
class Animal(object):
def run(self):
print('Anaimal is running ...')
当我们编写Dog和Cat类时可以直接从Animal继承
class Dog(Animal):
def run(self):
print('Dog is running ...')
def eat(self):
print('Eating meat...')#可以对子类添加代码
class Cat(Animal):
pass
继承最大的好处就是,子类会继承父类的全部功能
a = Dog()
a.run()
当子类和父类都存在相同的run()方法时,我们说,子类的run()覆盖了父类的run(),在代码运行的时候,总是会调用子类的run()
b = Cat()
b.run()
要理解什么是多态,我们首先要对数据类型再作一点说明
a = list() # a是list类型
b = Animal() # b是Animal类型
c = Dog() # c是Dog类型
print(isinstance(a,list))
print(isinstance(b,Animal))
print(isinstance(c,Dog))
print(isinstance(c,Animal))
所以,在继承关系中,如果一个实例的数据类型是某个子类,那它的数据类型也可以被看做是父类。但是,反过来就不行:
新增一个Animal的子类,不必对run_twice()做任何修改,任何依赖Animal作为参数的函数或者方法都可以不加修改地正常运行,原因就在于多态
def run_twice(a):
a.run()
run_twice(Animal())
run_twice(Dog())
class Tortoise(Animal):
def run(self):
print('Tortois is running ...')
run_twice(Tortoise())
对于Python这样的动态语言来说,则不一定需要传入Animal类型。我们只需要保证传入的对象有一个run()方法就可以了:
class Timer(object):
def run(self):
print('Start...')
这就是动态语言的“鸭子类型”,它并不要求严格的继承体系,一个对象只要“看起来像鸭子,走起路来像鸭子”,那它就可以被看做是鸭子。
文章来源: 松勤网
-
精卫填海读后感:https://www.nanss.com/yuedu/13224.html 关于爱情的英文文章:https://www.nanss.com/yuedu/13582.html 大病救助申请信:https://www.nanss.com/xuexi/12884.html 浮想联翩造句:https://www.nanss.com/xuexi/11254.html 日语作文:https://www.nanss.com/xuexi/12922.html 讲话稿开头:https://www.nanss.com/xuexi/13496.html 宪法名言警句:https://www.nanss.com/yulu/13922.html 仙气飘飘的名字:https://www.nanss.com/shenghuo/8397.html 企业文化学习心得:https://www.nanss.com/gongzuo/13906.html 适合刺客的古风名字:https://www.nanss.com/mingcheng/12040.html 语文教师工作总结:https://www.nanss.com/gongzuo/11405.html 生活的真实日记300字:https://www.nanss.com/xuexi/13887.html 男人补身体吃什么好:https://www.nanss.com/yinshi/13962.html 写景的好句:https://www.nanss.com/xuexi/12547.html 希腊神话人物:https://www.nanss.com/xuexi/12262.html 创先争优工作总结:https://www.nanss.com/gongzuo/13221.html 我的生活少不了它作文:https://www.nanss.com/xuexi/11353.html ppt自我介绍:https://www.nanss.com/gongzuo/13134.html 浪漫10字情话:https://www.nanss.com/wenan/12431.html 过去完成时的用法:https://www.nanss.com/xuexi/11664.html 身份证明:https://www.nanss.com/shenghuo/12631.html 四个字歌名:https://www.nanss.com/shenghuo/11919.html 一对一谈心谈话记录:https://www.nanss.com/gongzuo/12844.html 长津湖作文:https://www.nanss.com/xuexi/13901.html 表态发言稿:https://www.nanss.com/gongzuo/11391.html 空调使用规定:https://www.nanss.com/gongzuo/13504.html 爸爸的花儿落了读后感:https://www.nanss.com/yuedu/13367.html 建筑工作总结:https://www.nanss.com/gongzuo/11283.html 关于菊花的诗句:https://www.nanss.com/xuexi/11328.html 观后感作文:https://www.nanss.com/xuexi/12929.html(0) 回复 (0)
-
好听的微信号 团员自我小结 出去玩的文案短句朋友圈 母亲两周年忌日思念短语 珍惜时间作文 男人最爱听的昵称 两个字女生网名 护士个人工作总结 40至50岁微信昵称男 闺蜜文案适合发抖音 坚持作文 英文的网名 压抑了很久的心情终于释放了 清晨说说早安短句 抖音唯美昵称 公司年终总结 全国贫困县 音乐说课稿 三八节讲话 我的理想作文300字 我最喜欢的动物 防汛应急预案 毕业生自我总结 消防安全责任书 网名繁体字 四个字暖心昵称 优雅的网名 减肥路上的绊脚朋友圈说说 草房子读后感 勇气作文(0) 回复 (0)
-
讨债公司/蓝月传奇辅助/蓝月辅助(0) 回复 (0)