继承与多态

继承:
概念:如果两个或者两个以上的类局域相同的属性和方法,我们可以抽取出来一个类
将共同的部分声明到被抽取的类中.
这个被抽取出来的类我们称为父类/超类/基类
其他类我们称为子类/派生类
父类与子类之间的关系我们称为继承
注意:当一个子类没有继承其他类的时候,则它默认继承object类,换句话说,object类
是一切类的基类

在Python中我们的继承分为单继承与多继承
单继承:当一个子类只有一个父类的时候我们称为单继承
语法:
class 类名(父类):
类体
注意:若未指明父类的时候,默认继承object类,object可以省略不写.

继承的特点:
子类可以直接使用父类未私有化的属性以及方法.但是父类不能使用子类特有的属性
以及方法.
若子类拥有特殊属性的时候,我们需要在子类重写__init__方法,在子类的init方法中我们
需要将子类拥有的所有属性都声明(包括父类中的),还需要手动调用父类中的init方法
super().__init(参数列表)
在子类中不存在特殊的属性[我们没有重写init方法的时候],这时候系统会自动调用父类中
的init方法,不需要我们手动自己调用.

父类私有化的属性与方法,我们不能直接访问,但是我们可以通过暴露出的接口进行访问
‘’’

‘’’
多继承:
当一个子类有多个父类的时候我们称为多继承.
使用多继承的时候,当两个父类中的属性不相同的时候,默认调用写在继承列表中最前面的
位置的父类构造函数.
若两个父类中的构造函数我们都想调用的情况下,这时候我们需要自己手动来进行调用.
当多个父类中出现相同方法名的时候,子类优先选择写在继承列表前面的那个

class 类名(父类1,父类2,…):
类体

注意:()中为我们的继承列表

多态:
本质上指一种事物的多种表现形态,它是依赖继承而存在.
在Python中不存在真正的多态,因为Python是一个动态数据类型语言.

鸭子模型:如果有一只鸟,走路像鸭子,叫声像鸭子,这只鸟就是鸭子.
不关心它的数据类型,只关注它的使用

isinstance(obj,type)
功能:判断摸个对象是否属于某种类型
当这个对象属于这种类型或者属于这种类型的子类,那么返回True,否则
返回False.

dir(obj)
功能:查看指定对象的所有的属性以及方法,以列表的方式返回.

当我们打印对象的时候,默认情况下显示地址,当我们不想让其显示地址的时候
我们可以重写系统中__str__函数,当执行print()或者str()函数的时候会
自动调用此方法.因此__str__函数的返回值就是我们打印的对象的信息

当一个类中重写了__repr__函数,而没有重写__str__函数的时候,我们可以使用
str = repr

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值