day2 python面向对象 继承和多态(了解)

继承
    继承的概念和作用
        描述类与类之间的所属关系
        子类继承父类中所有的公有属性和方法
        作用:提高代码的复用率,减少重复代码的手写
        继承的语法
            class A(B):
                A继承了B,A称为子类,派生类;B称为父类,基类
    继承分类
        单继承
            一个子类继承一个父类,这种继承关系称为单继承
                class  A(B)
        多继承
            一个子类继承多个父类,这种继承关系称为多继承
                class  A(B,C)
            如果在父类中,有相同的属性或者方法,那么使用子类对象去调用这些属性和方法的时候,会默认调用第一个父类中的
        多层继承
            多层继承就是,A继承了B,B继承了C,C继承了D
                这种继承关系叫做多层继承
            类名.__mor__
                使用这种方法可以查看类之间的从属关系,用以确认具体的执行方法
    重写
        为何重写
            子类继承父类之后,发现父类中的方法不能满足子类的实际需求,那么就需要子类中重写父类中的方法
        如何重写
            在子类中去定义和父类中同名的属性和方法
            重写之后,如果使用子类对象去调用同名的方法或者属性的时候,默认调用的是子类自己的属性和方法。
        调用父类中的同名方法
            父类名.方法名(self)
            super(类名, self).方法名()
                类名:指定类名之后,会按照继承顺序链当前类名的下一个类中寻找方法。
            super().方法名()

私有权限
    私有属性
        在类的内部定义属性的时候,在属性名前面加上两个下划线的时候,该属性就变成了私有属性
        只能在类的内部使用
        如果需要在类的外部使用,在类的内部定义公有方法,通过对象去调用公有方法间接的使用私有属性
        如果想修改私有属性的值,需要在类的内部定义一个公有方法,然后在类的外部调用改方法修改私有属性
    私有方法
        和私有属性相同
    私有属性和私有方法在继承关系中,子类无法继承父类的私有属性和私有方法
    拓展
        对象名._dict__可以获取对象中所有的属性,然后可以在外部直接调用私有属性
            即python中的私有权限是相对的,是一种假的私有

多态(了解即可)
    传入不同的对象,实现不同的效果
    实现
        定义父类,提供公有方法
        子类重写父类中的公有方法
        定义一个函数,接收一个对象,在函数中通过传入的对象调用共同的方法

类属性和实例属性
    类属性
        定义
             在类的内部,方法外定义的属性就是类属性
        特点
            所有通过这个类创建出来的对象,类属性都是一致的
        访问(获取)
             类名.类属性
            对象.类属性名
                注:如果类属性名和实例属性名同名,这个时候获取的是实例属性的值
        修改
            只能通过这种方法来修改
                类名.类属性名 = 新值
                类方法中使用cls.类属性名 = 值
    实例属性
        就是对象属性

类方法和静态方法
    类方法
        在类中定义一个方法,使用装饰器,@classmethod装饰的方法,并且此方法的第一个形参必须是cls,表示类对象
        在方法中只需要使用到类对象的时候,就可以将此方法定义为类方法
    静态方法
        在类中定义方法的时候,方法使用装饰器@staticmethod装饰的方法就是静态方法
        该方法没有cls也没有self,但是可以有其他形参
        在方法中,没有使用类对象,也没有使用实例对象的时候,就可以将此方法定义为静态方法
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值