Python面向对象的三大特征:封装、继承、多态

封装

  • 什么是封装?

类是一种封装,将属性和方法封装。

函数也是一种封装,将具有一定共的逻辑代码封装到一个函数中,使用的时候调用即可

优点:提高代码的扩展性。

私有属性

如果有一个对象,当需要对其进行修改属性时,有2种方法

1,对象名。属性名=数据—->直接修改

2,对象名。方法名()—->间接修改

为了更好的保存属性安全,即不能随意修改,一般的处理方式为

将属性定义为私有属性,添加一个可以调用的方法,供调用

python中没有像C ++中的public和static这些关键字来区别公有属性和私有属性,它是以属性命名方式来区分。

如果在属性名前面加了2个下划线 ‘__’,则表明该属性是私有属性,否则为公有属性(方法也是一样,方法名前面加了2个下划线的话表示该方法是私有的,否则为公有的)。

1,将属性私有化:“__属性名”间接修改

2,对外提供可访问的方式:获取(get)和设置(set)根据需要提供也可以不提供

私有化也是一种封装,只能在类的内部访问,出了类就不能访问了

继承

  • 什么是继承?

将公共的(共性的)属性和方法放在父类中,子类只关注自己特有的属性和方法。

python中所有的内容都是对象,所有的对象都直接或间接继承了对象。

私有的属性,不能通过对象直接访问,但是可以通过方法访问。

私有的方法,不能通过对象直接访问。

私有的属性,方法,不会被子类继承,也不能被子类访问。

* *优点:提高代码的扩展性。

  • 多继承

所谓多继承,即子类有多个父类,并且具有它们的特征

print(子类名.__ mro __)可以查看子类的对象搜索方法时的先后顺序

重写父类方法:所谓重写,就是子类中,有一个和父类相同名字的方法,在子类中的方法会覆盖掉父类中同名的方法

多态

  • 什么是多态?

一个对象在不同的​​情况下,具有不同的形态,用于强类型语言。是使用在继承和接口中实现。

1,父类作为参数,可以传递父类和子类对象
2,接口作为参数,只能传递实现对象

Python中有两种说法

1,python支持多态
python是一个弱类型,本身一个变量名,可以存储任何类型的值,可以理解为多种形态

2,python不支持多态
多态本身是用于强类型语言的,python是一个弱类型,所以不支持多态

你可能感兴趣的:(面向对象)