我们总是说python是一门面向对象的编程语言,那么,怎么来理解面向对象呢?
首先,要解决这个问题就要从根源出发,理解面向对象的定义。面向对象编程——Object Oriented Programming,简称OOP面向对象其实就是一种编程思想,是相对于面向过程而言的,面向过程编程即是每一次解决问题都要执行一边所有的程序,都要写一遍所有的代码,而面向对象编程,就是将这些具有相同功能的代码程序封装起来,这样在解决问题的时候只需要调用这个封装好的代码即可,大大节省了代码量,提高了效率。举一个通俗点的例子:
农村吃水问题,面向过程就是每一次吃水都要一桶桶的从水井里打出来,而面向对象编程,就是将打水的过程封装在抽水泵里,这样每一次吃水只需要调用一下抽水泵的电源开关即可。
接下来,就要讨论一下面向对象的三大特性了:
1、封装
封装是什么,就是将数据和逻辑整理归纳到一个类里,使用的时候只需要初始化一个类的对象,就可以直接调用了,这样操作起来简单方便,提高了编程的效率,而且可以增加代码的复用,使用时,我们是直接调用,至于里面的执行程序我们看不到,也提高了代码的安全性。
2、继承
继承是类与类之间的关系,如果一个类想拥有已知存在的类的功能或者函数,简单的办法就是直接继承那个父类,继承之后,新的类(子类)不用写任何代码也具备和父类相同的功能,这样更加简化了代码的数量,但同时,在继承的基础上,也可以单独修改其中的某一个或几个函数,在子类中,使用与父类中相同变量或方法名,可以重新定义父类中的属性和方法(重写)
3、多态
多态就是指,不通的对象调用相同的函数,会有不同的结果这是因为(当子类继承父类之后,成员方法既可以重写也可以不重写。当调用的时候只要保证新方法编写正确,不用管原来的代码。),多态依赖于继承。
多态有什么用处呢?
(1)增加了程序的灵活性
以不变应万变,不论对象千变万化,使用者都是同一种形式去调用,如func(animal)
(2)增加了程序的可扩展性
通过继承animal类创建了一个新的类,使用者无需更改自己的代码,还是用func(animal)去调用