面向对象的三大特性
继承:继承是一种创建新类的方式,在Python中,新建的类可以继承一个或者多个父类,父类又可以称为基类或者超类,新建的类称为派生类或者子类。
类的继承分为单继承和多继承:
class ParentClass1: #定义父类 pass class ParentClass2: #定义父类 pass class SubClass1(ParentClass1): #单继承,基类是ParentClass1,派生类是SubClass pass class SubClass2(ParentClass1,ParentClass2): #python支持多继承,用逗号分隔开多个继承的类 pass
*如果没有指定基类,Python的类会默认继承object类,object是所有的Python类的基类,它提供了一些常见的方法。
继承与抽象(先抽象后继承):继承是基于抽象的结果,通过编程语言去实现它,肯定是先经历抽象这个过程,才能通过继承的方式去表达抽象的结果
继承与重用性:
在开发程序的过程中,如果我们定义了一个类A,然后又想新建立另外一个类B,但是类B的大部分内容与类A相同时,我们不得不从头开始写一个类B,这就用到了类的继承;通过继承的方式新建类B,让B继承A,B会‘遗传’A的所有属性(数据属性和函数属性),实现代码的重用。
派生:在继承的基础上子类也可以添加自己新的属性(不会影响到父类)。
抽象类与接口类:
接口类:
1、继承基类的方法,并且做出自己的改变或者扩展(代码重用) 2、声明某个子类兼容与某基类,定义一个接口类interface,接口类中定义了一些接口名(函数名)且并未实现接口的功能,子类继承接口类,并且实现接口中的功能 抽象类:抽象类是一个特殊的类,他的特殊之处在于只能被继承不能实例化 抽象类的本质还是类,指的是一组类的相似性,包括数据属性和函数属性,而接口类只强调函数属性的相似性 抽象类是一个介于类和接口直接的一个概念,同时具备类和接口的部分特性,可以用来实现归一化设计
接口隔离原则: 使用多个专门的接口,而不使用单一的总接口。即客户端不应该依赖那些不需要的接口。
钻石继承:
新式类:广度优先 =======>Python3 经典类:深度优先 =======>只在Python2
多态
多态指的是一类事物的多种形态:(例如一个父类有多个子类继承)
封装:
隐藏对象的属性和实现细节,仅仅对外提供公共访问方式
好处:将变化隔离;便于使用;提高复用性;提高安全性
原则:将不需要对外提供的内容都隐藏起来;吧属性都隐藏,提供公共方式对其访问
私有变量和私有方法:在Python中用双下划线开头的方式将属性隐藏起来(设置成私有的)
本文来自博客园,作者:一石数字欠我15w!!!,转载请注明原文链接:https://www.cnblogs.com/52-qq/p/7373576.html