面向对象的三大特性

继承:继承是一种创建新类的方式,在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中用双下划线开头的方式将属性隐藏起来(设置成私有的)

 

posted @ 2017-08-16 15:25 前方、有光 阅读(...) 评论(...) 编辑 收藏