学习python之路只面向对象编程的三大特点之三——多态

本文介绍了面向对象编程中多态的概念,通过一个简单的Python程序演示了如何实现多态,包括继承、方法重写以及父类引用指向子类对象等关键要素。

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

一、多态的概念

以封装继承为前提,不同的子类对象调用相同的方法,产生不同的执行结果

二、多态的条件

  1.    继承的存在(继承是多态的基础,没有继承就没有多态).
  2.    子类重写父类的方法(多态下调用子类重写的方法).
  3.    父类引用变量指向子类对象(子类到父类的类型转换).

三、实例

class Dog(object):
    def __init__(self, name):
        self.name = name
    def game(self):
        print '%s 蹦蹦跳跳的玩..' % self.name
class Xiaotiandog(Dog):
    # 父类方法不能满足子类的方法,重写game方法
    def game(self):
        # 在使用继承时,子类拥有父类的所有属性和方法
        print '%s 飞到天上玩...' % self.name
class Person(object):
    def __init__(self, name):
        self.name = name
    def game_with_dog(self, dog):
        print '%s 和 %s 快乐的玩耍' % (self.name, dog.name)
        # 让狗玩耍
        dog.game()
# 1.创建一个狗对象
#wangcai = Dog('旺财')
wangcai = Xiaotiandog('旺财')
# 2.创建一个小明对象(小明是一个人)
xiaoming=Person('小明')
# 3.让小明调用和狗玩的方法(把之前创建的狗对象传递进去)
xiaoming.game_with_dog(wangcai)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值