多态的概念

多态的概念一 面向对象编程的三大特征 封装 继承 多态二 实现多态的步骤注意点 鸭子类型概念 它并不要求严格的继承体系 关注的不是对象的类型 而是它是否具有要调用的方法 行为

一、面向对象编程的三大特征:封装,继承,多态

  • 封装:客观的事物封装成类(将数据和方法放在一个类中就构成了封装)。
  • 继承:python中一个类可以继承于一个类也可以继承多个类,被继承的类叫父类(或者叫基类,base class),继承的类叫子类。
  • 多态(Polymorphism):指的是一类事物有多种形态,一个抽象类有多个子类(因而多态的概念依赖于继承),不同的子类对象 调用相同的 方法,产生不同的执行结果,多态可以增加代码的灵活度

二、多态的概念

  • 多态就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同 的状态,从一定角度来看,封装和继承几乎都是为多态而准备的。

三、实现多态的步骤

  1. 定义一个父类(Base),实现某个方法(比如:run)
  2. 定义多个子类,在子类中重写父类的方法(run),每个子类run方法实现不同的功能
  3. 假设我们定义了一个函数,需要一个Base类型的对象的参数,那么调用函数函数的时候,传入Base类不同的子类对象,那么这个函数就会执行不同的功能,这就是多态的体现

四、实现多态的必要条件:

  1. 子类必须要继承父类(需要满足继承关系)
  2. 父类引用指向子类引用

五、需要注意的点:

  1. 父类引用指向子类实例时,可以调用子类重写父类的方法以及直接继承父类的方法,无法调用子类特有的方法
  2. 静态static方法属于特殊情况,静态方法只能继承,不能重写。调用的时候用谁的引用,则调用谁的版本

鸭子类型概念:它并不要求严格的继承体系,关注的不是对象的类型,而是它是否具有要调用的方法(行为)

# 父类 class Animal(object): """动物类""" def func(self): print('动物发出了声音') # 子类继承(Animal) class Cat(Animal): """猫类""" def func(self): super().func() print('我是猫类:喵 喵 喵') # 子类继承(Animal) class Dog(Animal): """狗类""" def func(self): super().func() print('我是狗类:汪 汪 汪 ') a = Cat() b = Dog() a.func() b.func() 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224125.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午12:38
下一篇 2026年3月17日 下午12:38


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号