python3面向对象-继承

什么是继承

子承父类,就相当于把一些公共方法封装成一个类,当需要用到这个类里面的功能,就继承该类就可以使用里面的功能了。子类继承了父类也可以使用父类的父类的功能。
私用方法或属性不能被继承。

继承实例

# 创建a类继承object类(所有的类默认都是继承object类)
class A(object):

    def a_func(self):
        print('这是a类的功能')

# 创建b类,继承a类
class B(A):

    def b_func(self):
        print('这是b类的功能')
# 实例化a类(创建x对象)
x = A()
x.a_func()

# 实例化b类(创建y对象)
y = B()
y.a_func()  # 调用父类的功能
y.b_func()

运行结果

这是a类的功能
这是a类的功能
这是b类的功能

重写

子类继承了父类时,如果你觉得父类的方法不是你想要的方法,
你可以在自己的类里面写一个和父类名字一模一样的方法名,把你想要的功能从新写入。既是重。
因为程序是先找子类有没有该方法,如果没有则到父类去找,如果有的话直接使用子类的方法。

重写实例

# 创建a类继承object类(所有的类默认都是继承object类)
class A(object):

    def a_func(self):
        print('这是a类的功能')

# 创建b类,继承a类
class B(a):

    def b_func(self):
        print('这是b类的功能')

    # 重写父类方法
    def a_func(self):
        print('这是重写a类后的功能')

    # 子类重写了父类的功能,但还是想用父类的功能
    def b_func2(self):
        A.a_func(self)    # 可以通过:父类名.被重写的方法名(self):调用
        A().a_func()      # 第二种调用方式
        super().a_func()  # 第三种调用方式


# 实例化a类(创建x对象)
x = A()
x.a_func()

# 实例化b类(创建y对象)
y = B()
y.a_func()  # 此时调用的是被重写后的方法
y.b_func()
y.b_func2()

运行后的结果

这是a类的功能
这是重写a类后的功能
这是b类的功能
这是a类的功能
这是a类的功能
这是a类的功能

多继承

一个子类继承多个父类。

多继承实例

# 创建a类继承object类(所有的类默认都是继承object类)
class A(object):

    def a_func(self):
        print('这是a类的功能')

# 创建b类
class B(object):

    def b_func(self):
        print('这是b类的功能')

# 创建c类型 继承a类和b类
class C(A, B):

    def c_func(self):
        print('这是c类的功能')


# 创建z对象
z = C()
z.a_func()
z.b_func()
z.c_func()

运行结果

这是a类的功能
这是b类的功能
这是c类的功能

多继承类的方法调用顺序:首先,先找他自己的方法,如果没有则找第一个父类的方法,再找第二个父类的方法,直到object类。
print(子类名.__mro__)可以查看调用方法的顺序
注意:多继承时,被继承的父类之间不能有继承关系否则会报错!!!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,175评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,674评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,151评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,597评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,505评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,969评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,455评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,118评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,227评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,213评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,214评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,928评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,512评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,616评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,848评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,228评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,772评论 2 339

推荐阅读更多精彩内容

  • java继承 继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。 继承就是子类继...
    863cda997e42阅读 651评论 0 1
  • 面向对象笔记 一、 对象在内存中的存放方法以及被调用过程 class文件首先被加载到方法区中的class文件内容区...
    VictorBXv阅读 454评论 0 2
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,717评论 2 9
  • 最美的文章才配得上更高的赞美,单篇最高奖金达500元,才华横溢的你,要不要来试试? 嗨,好久不见!你还记得我吗?是...
    西藏小战士阅读 3,640评论 15 46
  • 好久没动笔了,手指放在键盘上的时候,脑袋里却是空荡荡的。明天我就要离校回家了,研一的生活就这样结束了,而对我来说,...
    阿驴阅读 226评论 4 0