面向对象编程之继承

面向对象之继承

继承也是面向对象编程的三大特征之一,当几个类对象中共有属性和方法中,则可以把属性和方法放到一个基类中,每个类对象特有的属性和方法还是放到本类中定义,这样只需要让每个类对象都继承这个基类就可以访问基类中的对象和方法了,继承基类的每个对象又称为派生类或子类,基类又称为父类。继承是代码复用的重要手段。

python中所有的类对象都继承一个统一的基类:object,这就是我们为什么要在每一个类对象的后面加一个object。

class Animal(object):
    def eat(self):
        print("吃饭")
    def drink(self):
        print("喝水")
class Dog(Animal):
    def swim(self):
        print("游泳")
class Bird(Animal):
    def fly(self):
        print("飞行")
dog = Dog()
dog.eat()
dog.drink()
dog.swim()

bird = Bird()
bird.eat()
bird.drink()
bird.fly()

输出:

吃饭

喝水

游泳

吃饭

喝水

飞行

单继承:子类只有一个直接父类时称为单继承,假设子类和父类分别为ChildClass和ParentClass,子类继承父类的格式为:

class ChildClass(ParentClass):
    pass

多继承:子类有多个父类时称为多继承

class ChildClass(ParentClass1, ParentClass2,...,ParentClassn):
    pass

子类会继承所以父类的属性和方法(包括所以直接的和间接的)

class ParentClassA(object):
    ca = 19
    def im(self):
        print("im被调用了")
class ParentClassB(object):
    __pia = 23
    def __pcm(self):
        print("pcm被调用了")
class ChildClassA(ParentClassA, ParentClassB):
    @classmethod
    def cm(cls):
        print("cm被调用了")
class ParentClassC(object):
    @staticmethod
    def sm():
        print("sm被调用了")
print(dir(ChildClassA))

输出:

[’_ParentClassB__pcm’, ‘_ParentClassB__pia’, ‘class’, ‘delattr’, ‘dict’, ‘dir’, ‘doc’, ‘eq’, ‘format’, ‘ge’, ‘getattribute’, ‘gt’, ‘hash’, ‘init’, ‘init_subclass’, ‘le’, ‘lt’, ‘module’, ‘ne’, ‘new’, ‘reduce’, ‘reduce_ex’, ‘repr’, ‘setattr’, ‘sizeof’, ‘str’, ‘subclasshook’, ‘weakref’, ‘ca’, ‘cm’, ‘im’]

在dir函数中传递模块名称可以检索函数和属性名。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值