面试 | 什么是面向对象(OOP)?

旁白:这是一个很大的问题,我觉得面试官主要想听到的一定是面向对象给编程带来的好处,也就是说它独有的特点,所以重点应该要抓住封装、继承和多态三大特性来说。这里我回答的思路是:①面向对象思想的由来;②如何理解面向对象编程思想;③本人对面向对象思想三大特性的理解。

:①首先面向对象是一种编程思想。在面向对象这种编程思想出现以前,主流的是以c为首的面向过程的语言(cpp可以认为既是面向过程也是面向对象就,但都不彻底),它更多的是按照计算机处理事务的思想来编写代码,被称为函数,这种编程思想对我们人类来说太复杂,不符合我们人类的思考方式,因此面向对象的编程思想孕育而生。

②然后要理解面向对象,前提要理解什么是对象;万物皆对象这句话就能说明什么是对象,但这个太抽象,举个简单的例子,你是一个对象,我是一个对象,电脑是一个对象,房子是一个对象,宇宙是一个对象等等等,只要你能说的出来的东西都可以认为是一个对象;那么面向对象就可以理解为把任何事物抽象成一个对象来对待,之后再对这个对象进行相关的操作。

③或许这个时候会问,面向对象有什么好处?说到好处就不得不提它的三大特性:封装、继承和多态。为了说明这三大特性,我来讲个故事吧。
故事:小学的课本就说到女娲造人的故事,那么女娲首先想到的是所造的人长什么样,女娲为了方便就按照自己的样子捏了一个模板,后面它只需要按照这个模板来捏就行,在OOP中,这个模板称为类。女娲按照模板(类)捏了一个人,这个人就是具体的对象;那么我们知道人有很多器官构成,如眼睛、耳朵、鼻子、大脑、手和脚等基本特征,同样还有年龄、身高等特征,女娲为了区别每个人就会给每个对象不同的基本特征,另外,捏出的人会走路,会吃饭,会干活等行为方式,在OOP中,对象的基本特征称为属性,行为方式称为方法,所以这里看出类是由类的属性和类的方法构成;当人需要做什么的时候,都是通过方法来完成,而对于基本特征完全对外部环境隐藏,比如我吃饭我是用手吃,外部环境只知道我有这个行为,但不知道我是如何实现的,这样做有利的保护了我的属性,这种把属性隐藏,暴露方法的行为称为封装(此时可以思考一下面向过程语言)。女娲想着这一个人太无聊,就给它捏一个伴侣,暂且就叫它男人和女人吧,男人和女人都是根据这个模板来的,有着一样的基本特征和行为,只是某些特征(属性)和行为(方法)在实现上有差异,那么这种根据模板而捏造不同实现细节的类的行为称为多态,就是一个模板有男人和女人两种形态。女娲为了省事就让人类自己繁衍后代,就有了父子的关系,子类来自于父类,具有父类的基本特征和行为,子类也可以改变这些特征和行为,这种父子关系实现称为继承
故事到此结束,用大白话说明封装、继承和多态的含义。如果女娲按照面向过程的思想来造人,大概是造男人是一个方法,造女人是一个方法,造子类也是一个方法,方法内部分别包含基本特征,至于行为就更复杂了,所以OOP思想利用三种特性变得相对简单。

PS:如果想了解到更多关于Java、C、CPP等语言方面的特性只是,欢迎关注我们的公众号。
在这里插入图片描述
PS:内容丰富全面,共同进度!欢迎你的关注!

  • 38
    点赞
  • 143
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值