首页 > 编程语言 >081、Python 关于方法重写

081、Python 关于方法重写

时间:2024-07-16 23:27:57浏览次数:19  
标签:sound Python 方法 081 多态 animal 重写 make

所谓方法重写,就是子类对父类已有的方法,重新编写自己的实现版本,这个过程就叫做方法重写(override)。

说到方法重写,就不得不提多态。因为方法重写是实现多态的一种重要方式。

所谓多态,就是给不同的对象发送同样的消息,不同的对象执行了不同的行为。即多态允许我们以统一的接口来处理不同类型的对象。

在面向对象编程中,多态和方法重写通常一起使用,以实现更加灵活和强大的程序设计。

如何实现方法重写?

只需要在子类中定义一个与父类中方法同名的方法即可。Python会自动在调用时选择子类中的方法。

例:

class Animal:  
    def make_sound(self):  
        print("某种声音")  
  
class Dog(Animal):  
    def make_sound(self):  
        # 方法重写  
        print("汪汪")  
  
class Cat(Animal):  
    def make_sound(self):  
        # 方法重写  
        print("喵喵")  
  
# 运行同一方法,根据对象的不同运行不同方法  
def animal_sound(animal):  
    animal.make_sound()  
  
my_dog = Dog()  
my_cat = Cat()  
  
# 根据传入的实例(如Dog或Cat),将调用实例重写的make_sound方法  
animal_sound(my_dog)  # 输出: 汪汪  
animal_sound(my_cat)  # 输出: 喵喵

标签:sound,Python,方法,081,多态,animal,重写,make
From: https://blog.csdn.net/mr_five55/article/details/140479658

相关文章

  • python:绘制对数函数的曲线
    《高等数学》同济大学出版:对数函数,e=2.718281828459...为自然常数编写 test_log_x.py 如下#-*-coding:utf-8-*-"""绘制对数函数y=log(x)和y=log2(x)的曲线"""importnumpyasnpfrommatplotlibimportpyplotasplt#用于正常显示中文标题,负号plt.......
  • 四、python字符串
    文章目录学习目标一、字符串的表示方式二、字符串的下标和切片2.1字符串的下标2.2字符串的切片三、字符串的常见操作3.1字符串运算符四、字符集和编码4.1字符集4.2编码规则五、成员运算符六、格式化打印字符串pycharm快捷键学习目标......
  • 《0基础》学习Python——第十四讲__封装、继承、多态
    <封装、继承、多态>一、类和实例解析    1、面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。    2、用class类名......
  • 【利用Python进行数据分析8】Pandas入门(描述性统计的汇总与计算)
    导包importyfinanceasyfimportpandasaspdimportnumpyasnp1.描述性统计的汇总与计算#1.描述性统计的汇总与计算#数值型数据df=pd.DataFrame([[1.4,np.nan],[7.1,-4.5],[np.nan,np.nan],[0.75,-1.3]],index=["a","b","c","d"],......
  • Python进阶(1)--面向对象
    文章目录面向对象类的定义类的构造实例化一个类三大特点封装私有属性继承和多态继承继承的作用多态总结总结面向对象Python是一种广泛使用的解释型、高级编程、通用型编程语言,它以其简洁、易读以及面向对象的特性而闻名。面向对象编程(Object-OrientedProgramm......
  • 初始python异常捕获
    1、打开文件#打开文件的两种方式f=open("文件名/文件路径","要进行的操作",encoding="utf-8")#其中utf-8可以省略不写withopen("文件名/文件路径","要进行的操作",encoding="utf-8")asf:#这两种的区别,第一种需要进行手动关闭文件,里面没有内置关闭f.close第二种内置关闭,......
  • python如何执行windows命令
    python如何执行windows命令?方法如下:1、使用os.system("cmd")特点是执行的时候程序会打出cmd在Linux上执行的信息。import osos.system("ls")2、使用Popen模块产生新的process现在大部分人都喜欢使用Popen。Popen方法不会打印出cmd在linux上执行的信息。的确,Popen非......
  • 初识python容器
    python容器数据容器分类:list,tuple,str,set,dictlist1、列表的格式:变量名称=["元素1","元素2","列表1","元素4"]eg:name_list=["wo","xi","huan","ni","520",[1,2,3]]#定义空变量变量名称=[]变量名称=list()......
  • Python爬虫Post请求返回值为-1000
    今天写了一个简单的爬虫程序,为了爬取kfc官网的餐厅数据,代码如下#ajax的post请求--肯德基官网defcreate_request(page):url='http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx'data={ 'cname':'濮阳', 'pid':'', 'pageIndex':p......
  • python的浅复制
    天天用着python写代码,但是其实很多东西原理都不是很清楚,还是得知其所以然,否则处处踩坑关键词:递归、列表、set,边遍历边修改边遍历边修改是一件很危险的行为,小白无知,竟然大胆的使用了,还莫名其妙work了,然后进入了细致的分析。第一种情况defbacktracing(index):globalc......