如何通过面向对象封装、继承、多态实现复杂系统设计?

摘要:大家好,下面我说一下我对面向对象的理解,不会讲的很详细,因为有很多人的博客都把他写的很详细了,所以,我尽可能简单的通过一些代码让初学者可以理解面向对象及他的三个要素。 摘要:1、首先介绍一下面向对象 2、然后分别讲一下封装、继承和多态 3、
大家好,下面我说一下我对面向对象的理解,不会讲的很详细,因为有很多人的博客都把他写的很详细了,所以,我尽可能简单的通过一些代码让初学者可以理解面向对象及他的三个要素。 摘要: 1、首先介绍一下面向对象 2、然后分别讲一下封装、继承和多态 3、最后通过一段面向对象的案例来更好的理解一下面向对象      python是一门面向对象编程语言,对面相对象语言编码的过程叫做面向对象编程。   面向对象时一种思想,与之相对对的是面向过程。我们先简单说一下面向过程。   面向过程其实就是把过程当做设计核心,根据问题的发展顺序,依次解决问题,尽可能的把过程中涉及到的问题完善解决。他有他的优点,当拿到一个问题时,可以方便的按执行的步骤写代码,但是当逻辑关系变得复杂时,有一个地方出现差错就会导致整个程序无从下手。   既然主要是说python,那我们还是回来说说python的面向对象,面向对象的编程语言还是很多的,例如C++、Java等等。   面向对象程序设计把计算机程序的执行看做一组对象的集合,每个对象之间进行消息的传送处理。有一个显著的优点就是,对某个对象进行修改,整个程序不会受到影响,自定义数据类型就是面向对象中的类的概念,而我们需要把他们的接口处理好就很好办了。说了这么多话,有些小白已经看不下去了,那接下来我们进入主题。 上面说了,自定义数据类型就是面向对象中的类的概念。我们先介绍一下待会儿会用到的一些术语: 1 # 我认为还是通过个例子更容易让人理解 2 3 # 首先我们定义一个类 4 class A(object): # 这是一个类,class是创建一个类的标志 5 # 类变量(类属性):类属性是指类的属性,属性就是我们刚学编程的时候听过的变量。 6 x = 7 7 y = "asdf" 8 9 def __init__(self,name,age): 10 self.name = name 11 self.age = age 12 13 # 方法:方法就是在类外面我们写的函数,放在类里就叫做一个方法 14 def func(self): 15 c = 8 # 实例变量:定义在方法中的变量只作用于当前实例的类 16 print("Hello World!") 17 18 a = A() # 创建一个对象,实例化   上面的部分代码还需要再解释一下: object: 注意类名后面括号里有个参数object,他代表所有类的基类,也叫作超类。 这就有了一个新式类和旧式类的概念: 当用到多继承的时候,如果子类中没有想用的方法名或属性名,他会自动回到上面去找。那么按广度优先遍历的方法去寻找就是新式类(object);深度优先(括号里啥也没有)。 __init__():构造函数,实例化的时候若不显示的定义,那么默认调用一个无参的,是初始化的意思。 一、封装   含义:对外面隐藏对象的属性和方法,仅提供接口。
阅读全文