Python面向对象之多态理解

不同的子类对象 调用相同的父类方法 产生不同的执行结果
多态使用前提:
需要继承和对父类进行重写
多态:一种接口多种实现,实现接口的重用

实现多态的步骤

  1. 定义新的子类
  2. 重写对应的父类方法
  3. 使用子类的方法直接处理,不调用父类的方法
    以下是我理解的多态的使用
    子类1重写了父类的A方法,子类2重写了父类的A方法,子类3重写了父类的A方法,
    通过子类1实例化对象1,调用A方法,实现的的是子类1中的A方法,
    通过子类2实例化对象2,调用A方法,实现的的是子类2中的A方法,
    通过子类3实例化对象3,调用A方法,实现的的是子类3中的A方法。

如果此时定义一个函数test():
def test(obj):
obj.A方法()
那么此时:test(对象1)
test(对象2)
test(对象3)
对应输出内容为:子类1中的A方法
子类2中的A方法
子类3中的A方法

不同的子类对象 使用同一个方法 结果输出需要的执行结果

我在网上找到一个比较形象的例子来说明多态

多态代码示例

class School(object):
      def Lingxiangle(self):
          pass
class Teacher(self):
      def Lingxiangle(self):
          print("下班了")

class Student(self):
      def Lingxiangle(self):
          print("放学了")
def xiake(obj):
    obj.Lingxiangle()

实例化子类对象
student1 = Student()
teacher1 = Teacher()

# 同一操作(同一函数)不同的对象,有不同的结果
xiake(student1)
xiake(teacher1)

#输出
#放学了
#下班了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值