Python中类的继承

继承是面向对象编程中一个重要的特性。通过继承机制,实现了代码的重用。同时继承也表明了类和类之间的关系。

Python中类的继承简单示例(基于Python 2.7.11),代码如下:

#!/usr/bin/env python
#-*-coding:utf-8-*-

class Grandpa:
    def __init__(self):
        self.age = 70
        print('I\'m grandpa!')
    def myDream(self):
        print('我有一个梦想:登上火星!')

class Father(Grandpa):
    def __init__(self):
        print('I\'m father')
    def myDream(self):
        print('我有一个梦想:登上月球!')

class Son(Father):
    """A demo class"""
    def __init__(self):
        self.age = 4
        print('我是构造函数.Son')
    def myDream(self):
        print('我有一个梦想:环游世界!')
    def setAge(self):
        self.age = 10
    def getAge(self):
        realAge = self.age
        return realAge

if __name__ == '__main__':
    son = Son()
    print '文档信息: ', Son.__doc__
    print '类型名称:', Son.__name__
    print '基类名称:', Son.__bases__
    print '类型字典:', Son.__dict__
    print '类型所在模块:', Son.__module__
    print '实例类型:', Son().__class__
    son.setAge()
    print '实例成员:', son.getAge()
    son.myDream()
输出结果:

我是构造函数.Son
文档信息:  A demo class
类型名称: Son
基类名称: (<class __main__.Father at 0x2b4fa31364c8>,)
类型字典: {'__module__': '__main__', 'getAge': <function getAge at 0x2b4fa3142a28>, '__doc__': 'A demo class', '__init__': <function __init__ at 0x2b4fa3142938>, 'setAge': <function setAge at 0x2b4fa31429b0>}
类型所在模块: __main__
实例类型: 我是构造函数.Son
__main__.Son
实例成员: 10
我有一个梦想:环游世界!

可以看出,祖孙三代都有一个成员myDream,每人都有自己的梦想。如果son没有“梦想”,那么他就会继承父辈的“梦想”。

注释掉Son的myDream()成员,在main中调用son.myDream(),输出将会是,我有一个梦想:登上月球!

这种继承关系很形象,便于我们理解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值