python入门-6面向对象编程:09多态(代码片段)

jack-zh jack-zh     2022-12-09     228

关键词:

多态:

  多态(polymorphism)是指同一个方法调用由于对象不同可能会产生不同的行为。在现实 生活中,我们有很多例子。比如:同样是调用人的休息方法,张三的休息是睡觉,李四的休 息是玩游戏,程序员是敲代码。同样是吃饭的方法,中国人用筷子吃饭,英国人用刀叉吃 饭,印度人用手吃饭。

  关于多态要注意以下2点:

    1. 多态是方法的多态,属性没有多态。

    2. 多态的存在有两个必要条件:继承、方法重写。

【操作】

#多态
class Animal:
    def shout(self):
        print(动物叫了一声)

class Dog(Animal):
    def shout(self):
        print(小狗,汪汪汪!!!)

class Cat(Animal):
    def shout(self):
        print(小猫,喵喵喵!!!)

def animalShout(a):
    if isinstance(a,Animal):
        a.shout()    #传入的对象不同,shout方法对应的实际行为也不同

animalShout(Cat())
animalShout(Dog())

运行结果:

  小猫,喵喵喵!!!
  小狗,汪汪汪!!!

python入门-6面向对象编程:01面向对象和面向过程区别-对象的进化

...式更加接近人的思维,从而大大提高了编程的效率。  Python完全采用了面向对象的思想,是真正面向对象的编程语言,完全支持面向对 查看详情

python入门-6面向对象编程:12组合(代码片段)

组合:  “is-a”关系,我们可以使用“继承”。从而实现子类拥有的父类的方法和属性。“is-a”关系指的是类似这样的关系:狗是动物,dogisanimal。狗类就应该继承动物类。  “has-a”关系,我们可... 查看详情

python入门-6面向对象编程:03类对象-类属性-类方法-静态方法(代码片段)

一:类对象  前面讲的类定义格式中,“class类名:”。实际上,当解释器执行class语句时,就会创建一个类对象。【操作】#测试类对象的生成classStudent:pass#空语句print(type(Student))print(id(Student))print(Student)s1=Student()print(s1)S... 查看详情

python入门-6面向对象编程:11对象的浅拷贝和深拷贝(代码片段)

...个变量,实际还是指向同一个对象。  浅拷贝    Python拷贝一般都是浅拷贝。拷贝时,对象包含的子对象内容不拷贝。因此,源对象和拷贝对象会引用同一个子对象。  深拷贝    使用copy模块的deepcopy函数,递归拷... 查看详情

python入门-6面向对象编程:12设计模式之工厂模式-单例模式(代码片段)

一:工厂模式实现  设计模式是面向对象语言特有的内容,是我们在面临某一类问题时候固定的做法,设计模式有很多种,比较流行的是:GOF(GoupOfFour)23种设计模式。  工厂模式实现了创建者和调用者的分离,使用专门的... 查看详情

python核心编程总结(四面向对象与异常)(代码片段)

✍、脑图时刻四、面向对象与异常✍、脑图时刻1、面向对象1.1、定义类1.1.2、创建对象1.1.3、self1.2、添加和获取对象属性1.2.1、类外面添加对象属性1.2.2、类外面获取对象属性1.2.3、类里面获取对象属性1.3、魔法方法1.3.1、`__ini... 查看详情

python面向对象编程(代码片段)

文章目录一、什么是面向对象编程二、类(class)和实例(instance)三、特性之一——数据封装四、访问限制五、特性之二、三——继承和多态-继承-多态六、获取对象信息-Type()-isinstance()-dir()七、实例属性和类属性此文参考廖雪峰官网... 查看详情

面向对象编程(代码片段)

文章目录面向对象编程(包、继承、组合、多态、抽象类、接口)包继承super关键字finalprotected关键字组合多态抽象类接口面向对象编程(包、继承、组合、多态、抽象类、接口)包包其实就是类的集合,其本... 查看详情

python入门到精通python面向对象三大特点:封装,继承,多态(代码片段)

...小伙伴们点赞👍、收藏⭐、留言💬目录一,python面向对象的特点------封装下面两个例子对封装进行理解:二,python面向对象的特点------继承1,单继承2ÿ 查看详情

python入门-6面向对象编程:10特殊方法和运算符重载-特殊属性(代码片段)

一:特殊方法和运算符重载  Python的运算符实际上是通过调用对象的特殊方法实现的。比如:#运算符-特殊方法a=20b=30c=a+bd=a.__add__(b)print(‘c=‘,c)print(‘d=‘,d)运行结果:  c=50  d=50常见的特殊方法统计如下:  每个运算... 查看详情

第10章面向对象编程(高级部分)

...象编程(高级部分)374.类变量引出375.类变量快速入门376.类变量内存剖析377.类变量定义访问378.类变量使用细节379.类方法快速入门380.类方法最佳实践381.类方法注意事项382.类成员课堂练习383.main语法说明384.main特别说明385.... 查看详情

python面向对象编程进阶(代码片段)

前言上上篇我们讲解了Python面向对象编程的基础知识,《Python基础篇:面向对象怎样炼成的》这篇我们继续来讨论面向对象编程相关的内容。目录前言可见性和属性装饰器动态属性静态方法和类方法继承和多态总结可见... 查看详情

python入门-6面向对象编程:08多重继承-mro()-super()获得父类的定义(代码片段)

一:多重继承  Python支持多重继承,一个子类可以有多个“直接父类”。这样,就具备了“多个父类”的特点。但是由于,这样会被“类的整体层次”搞的异常复杂,尽量避免使用。二:mro()  Python支持多... 查看详情

python入门到精通python面向对象三大特点:封装,继承,多态(代码片段)

...小伙伴们点赞👍、收藏⭐、留言💬目录一,python面向对象的特点------封装下面两个例子对封装进行理解:二,python面向对象的特点------继承1,单继承2,多继承3,重写父类的方法三.python面向对象... 查看详情

第08章面向对象编程(中级部分)

...1.IDEA快捷键3272.IDEA模板273.包基本结束274.包原理275.包快速入门276.包命名277.常用的包278.包的使用细节279.访问修饰符规则280.访问修饰符细节281.封装介绍282.封装步骤283.封装快速入门284.封装与构造器285.封装课堂练习286.为什么需要... 查看详情

python入门-6面向对象编程:06私有属性和私有方法(实现封装)-@property装饰器-get和set方法-总结(代码片段)

一:私有属性和私有方法(实现封装)  Python对于类的成员没有严格的访问控制限制,这与其他面向对象语言有区别。关于私有属性和私有方法,有如下要点:    1.通常我们约定,两个下划线开头的属性是私有的(private)。... 查看详情

educoder(头歌)平台java实训作业答案(代码片段)

头歌educoder实训java1-1Java入门-Java入门基础1-2Java入门-变量与数据类型1-3Java入门-运算符和表达式1-4Java入门-分支结构1-5Java入门-循环结构基础1-6Java入门-循环结构进阶1-7Java入门-分支与循环练习1.8Java入门-数组基础1.9Java入门-数组进... 查看详情

面向对象编程(代码片段)

面向对象编程文章目录面向对象编程两种编程方式类和对象的定义面向对象编程三步骤一、定义类二、造对象三、发消息案例静态方法、类方法面向对象解决实际问题魔术方法面向对象四大支柱继承多态对象之间的关系最终总结... 查看详情