花点时间把python入门<三十一>——继承、多态

本文介绍了面向对象编程中的继承和多态概念。通过Python代码示例展示了如何实现类的继承,并说明了子类如何覆盖父类的方法来实现多态。同时解释了多态的重要性和其实现原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.继承和多态
在面向对象的程序中,当定义一个类的时候,可以从现成的类继承,这个新类被称为子类,(subclass),被继承的类称为父类、基类、或超类。

class animal(object):
    def run(self):
        print('一个')
class Dog(animal):
    pass
class Cat(animal):
    pass
dog = Dog()
dog.run()
cat=Cat()
cat.run()

结果:

一个
一个

继承的好处就是子类可以获得父类的全部功能。
也可以对子类增加一些方法:
代码

class animal(object):
    def run(self):
        print('一个')
class Dog(animal):
    print('小狗')
class Cat(animal):
    print('小猫')
dog = Dog()
dog.run()
cat=Cat()
cat.run()

结果:

小狗
小猫
一个
一个

2.多态
当子类和父类都存在相同的run()方法时,子类的run会覆盖父类的run,这也就是多态的功能

class animal(object):
    def run(self):
        print('一个')
class Dog(animal):
    def run(self):
        print('小狗一只')
class Cat(animal):
    def run(self):
        print('小猫一只')
dog = Dog()
dog.run()
cat=Cat()
cat.run()

3.理解多态
当定义一个类的时候,实际上就定义了一种数据类型,这种数据类型和list,str,没什么区别,

a=list()
b=animal()
c=Cat()
D=Dog()
print(isinstance(c, Cat))
print(isinstance(c, animal))

结果:

True
True

这里c即属于Cat,又属于animal,合理的原因是因为,Cat是从animal继承下来的,所以属于Cat的数据类型一定属于anmial,但是反过来就不行了。

print(isinstance(b, dog))
TypeError:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是不想再当小白的黑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值