首页 > 编程语言 >Python基础:面向对象-继承和多态

Python基础:面向对象-继承和多态

时间:2023-03-20 11:57:47浏览次数:46  
标签:name Python self object 多态 面向对象 父类 eat def

一、继承

Python面向对象的继承指的是多个类之间的所属关系,即子类默认继承父类的所有属性的方法。

作用:可以减少代码重复,提升代码复用率。

简单示例如下:

#父类A
class Animal(object):
s = 'aaa'
def __init__(self, name):
self.name = name
def eat(self, s):
print(f'吃{s}')
#子类B 
class Cat(Animal):
pass

cat = Cat('加菲猫')
cat.eat('小鱼干')

在Python中,所有类默认继承object类,object类是顶级类或基类;其他子类叫做派生类。

子类重写父类的同名属性和方法:

class Dog(Animal): 
    # 父类中虽然只定义了初始化的属性只有name,但是我自己要在这个属性的基础上进行扩展
    def __init__(self,name,color):
        # 要先调用父类的初始化方法,便于继承父类的东西
        super().__init__(name)
        self.color = color

    # 重写父类的eat方法
    def eat(self,s,n):
        print(f'吃了{n}斤{s}')

    def sleep(self):
        print(f'{self.name}正在睡觉')

 

二、多态

简单地说,多态就是“具有多种形态”,它指的是:即便不知道一个变量所引用的对象到底是什么类型,仍然可以通过这个变量调用方法,在运行过程中根据变量所引用对象的类型,动态决定调用哪个对象中的方法。

简单示例:

class Animal(object):
  def eat(self):
    print('动物要吃东西')
class Dog(Animal):
  def eat(self):
    print('狗喜欢吃骨头')
class Person(object):
  def eat(self):
    print('人吃五谷杂粮')
   
def fun(object):
  object.eat()
fun(Animal()) fun(Dog()) fun(Person()

 

标签:name,Python,self,object,多态,面向对象,父类,eat,def
From: https://www.cnblogs.com/daydayup-lin/p/17235805.html

相关文章

  • python3.X版本升级3.1X
    卸载旧版本的python1、用安装包进行卸载,找到安装包2、双击后点击uninstall3、点击close 4、找到安装目录删除D:\ProgramFiles\Python39装新的版本1、去官网下......
  • python高级用法之命名元组namedtuple
    1.tuple类型数据的获取大家都知道,元组里面的数据获取只能通过下标的方式去获取,比如:a=('username','age','phone'),要获取username的话,就需要用a[0]的方式去获取,当元组......
  • 接口测试——python接口开发(二)
    1.python接口开发框架Flask简介与安装Flask接口测试框架的简介与安装Flask是轻量级的web开发框架相比于其他框架,Flask更自由,灵活相比于其他框架,Flask更容易上手Fl......
  • 【项目实战典型案例】21.面向对象复用、面向对象实现、立体化权限落地
    目录​​一:背景介绍​​​​1、针对于激励配置的功能体现出来的:面向对象的思想就可以实现极大程度的复用性的问题​​​​2、脱离学习通设计图,过程化,如何用面向对象的思想来......
  • 【全民Python】 Python3的Scoket服务器客户端
      一.客户端'''@File:4网络编程Socket客户端.py@Time:2023/03/1509:54:17@Author:幻世界'''#coding:utf-8fromsocketimport*print("============......
  • apple M1 python开发,django,安装mysqlclient并使用
    前言此笔记记录了MBPM1芯片的苹果本,解决mysqlclient虽然安装成功,但是会遇到_namenotdefound的解决办法解决过程内容参考:https://github.com/PyMySQL/mysqlclient/iss......
  • python实现一个遗传算法
    ###################  importrandom#染色体长度CHROMO_LENGTH=20#种群大小POP_SIZE=50#交叉概率CROSS_RATE=0.8#变异概率MUTATE_RATE=0.01#......
  • Python 多进程、多线程对比(转载)
    https://www.runoob.com/w3cnote/python-single-thread-multi-thread-and-multi-process.html具体实验见原文,这里只是引用实验结果,方便查询......
  • 面向对象
    面向过程需要为每个不同的人量身定做解决事情的办法,而面向对象不管你是谁,瘦的矮的胖的,都能拿来就能用。 面向对象:找个对象帮你做事儿,意在写出一个通用的代码,屏蔽差异。(......
  • 记一次,使用python实现一键在爱发电发布带图片的动态
    1、背景本人喜欢转载一些youtube上的视频到b站上面,然后就会有些观众想要视频的封面,那我总不可能一个一个发吧,太麻烦了。故打算将资源发布到爱发电上面。但是爱发电却没有......