前言
本节我们将重温一下面向对象编程思想。
我相信有很多同学和我有同一个感受:在面试时,面试官问你是怎么理解面向对象编程思想的?
我们的回答比较凌乱,隐约间好像理解面向对象编程思想,但就是无法组织出连贯的语句做比较全面的表述。针对这个痛点我们本节就来重新学习一下,然后小结一下如何回答:你是怎么理解面向对象编程思想的 类似的问题….
概述
什么是编程思想?
我理解的编程思想就是:通过使用一些编程语言来编写一些特殊的计算机指令(可以使编译之后的,也可是就是单纯的计算机指令),然后按照一定的逻辑(一定的思想和思维逻辑)来使计算机完成我们想要完成的某些功能。什么是JAVA 的面向对象编程思想?
我们使一些对象赋予某些属性和功能,然后通过调用对象来实现某些功能。 这就是我理解的面向对象编程思想。但这只是概括性的描述。我们还需要展开来阐述。- 这些对象从何而来?
java中的对象一般是通过实例化类获得的(具体的实现形式是通过使用类构造器构造出来的,不同的构造器构造出来的对象属性不同,这里又需要展开一下来阐述下类的构造器)。 - 这些对象的属性和功能是如何被赋予的(再次延伸展开JAVA 中 Class(类)的概念了)?
java类中的属性和方法赋予了对象的属性和功能。
- 这些对象从何而来?
面向对象编程思想是如何实现的?
- 设计类的成员(属性和方法等)。
- 通过类来创建类的对象(类的实例化-有构造器来构造,构造器的不同构造出的对象也将有不同的属性)。
- 调用类的属性、和方法来完成相应的功能。
面向对象有哪些特点和优点?
特点
- 将复杂的事情简单化。
- 面向对象将以前的过程中的执行者,变成了指挥者。
- 面向对象这种思想是符合现在人们思考习惯的一种思想。
面向对象的三大特征(或者四大特征)。
- 封装(封装和隐藏):面向对象语言的精髓
把一些属性和方法封装起来,形成一个类。只隐藏对象的属性和实现细节,仅对外提供公共访问方式。将变化隔离、便于使用、提高复用性、提高安全性。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。 继承:面向对象的主要功能
继承是指可以让某个类型的对象获得另一个类型的对象的属性的方法。已有的类称为父类,新构建的类称为子类,子类能调用父类的非private修饰的成员,同时还可以自己添加一些新的成员,扩充父类,甚至重写父类已有的方法,更其表现符合子类的特征。让子类的表现更独特,更专业。继承概念的实现方式有二类:实现继承与接口继承。实现继承是指直接使用基类的属性和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力
多态:
多态是同一个行为具有多个不同表现形式或形态的能力。多态性是对象多种表现形式的体现。 类中多个方法的重载叫多态,父子类中方法的覆盖也叫多态。 因此多态有两种体现:一个是方法的重装,一个是方法的覆盖。多态有方法的多态和对象的多态(一个对象多种形态),但必须要实现或有继承关系;覆写父类方法。方法的多态
- 重载
简称Overload。指在同一个类中、具有相同的方法名(权限修饰符/返回值可以不一样)、方法的参数列表不同(参数的个数不一样/参数的类型也不完全一样)的现象。是多态的一种表现方式即方法的多态。 - 覆盖
简称OverRide。指父类与子类之间的多态性,对父类的函数进行重新定义(也可以是通过实现接口的方式来实现override)。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写,在java中子类可以继承父类中的方法,而不需要重新编写相同的方法,但有时子类并不想原封不动地继承父类的方法,而是想做一定的修改,这就需要采用方法重写,方法重写又称方法覆盖。
- 重载
对象的多态
对象的多态指某个对象为满足某些需求会向上转型更变该对象的实例属性的过程。public class Test { public static void main(String[] args) { // 父类引用指向Dog子类的具体实现 //Dog和Cat 都继承了Animal Animal animal=new Dog(); animal.say(); // 更换实现 //同一个对象多态的经典表现:animal(Dog) --> animal(Cat) animal=new Cat(); animal.say(); } }
抽象(但常常不在特征之内)
- 封装(封装和隐藏):面向对象语言的精髓
小结
如何理解面向对象编程思想?
- 面向对象编程思想指的是:我们使一些对象赋予某些属性和功能,然后通过调用对象来实现某些功能。
- 面向对象三大特征:
- 封装:把一些属性和方法封装起来,形成一个类。只隐藏对象的属性和实现细节,仅对外提供公共访问方式。
- 继承:继承是指可以让某个类型的对象获得另一个类型的对象的属性的方法。
- 多态:多态是同一个行为具有多个不同表现形式或形态的能力。
- 方法的多态:重载、重写。
- 对象的多态:向上转型。