面向对象是一种思想,是基于面向过程而言的,就是说面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节;这种思想是将数据作为第一位,而方法或者说是算法作为其次,这是对数据一种优化,操作起来更加的方便,简化了过程。面向对象有三大特征:封装性、继承性、多态性,其中封装性指的是隐藏了对象的属性和实现细节,仅对外提供公共的访问方式,这样就隔离了具体的变化,便于使用,提高了复用性和安全性。对于继承性,就是两种事物间存在着一定的所属关系,那么继承的类就可以从被继承的类中获得一些属性和方法;这就提高了代码的复用性。继承是作为多态的前提的。多态是说父类或接口的引用指向了子类对象,这就提高了程序的扩展性,也就是说只要实现或继承了同一个接口或类,那么就可以使用父类中相应的方法,提高程序扩展性,但是多态有一点不好之处在于:父类引用不能访问子类中的成员的特有方法和属性。
举例来说:就是:比如说你要去饭店吃饭,你只需要去饭店,找到饭店的服务员,跟她说你要吃什么,然后就会给你做出来让你吃,你并不需要知道这个饭是怎么做的,你只需要面向这个服务员,告诉他你要吃什么,然后他也只需要面向你吃完收到钱就好,不需要知道你怎么对这个饭怎么吃的。
1、特点:
1:将复杂的事情简单化。
2:面向对象将以前的过程中的执行者,变成了指挥者。
3:面向对象这种思想是符合现在人们思考习惯的一种思想。
2、面向对象的三大特征:封装,继承、多态
1.封装:只隐藏对象的属性和实现细节,仅对外提供公共访问方式
好处:将变化隔离、便于使用、提高复用性、提高安全性
原则:将不需要对外提供的内容隐藏起来;把属性隐藏,提供公共方法对其访问
2.继承:提高代码复用性;继承是多态的前提
注:
①子类中所有的构造函数都会默认访问父类中的空参数的构造函数,默认第一行有super();若无空参数构造函数,子类中需指定;另外,子类构造函数中可自己用this指定自身的其他构造函数。
3.多态
是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象
好处:提高了程序的扩展性
弊端:当父类引用指向子类对象时,虽提高了扩展性,但只能访问父类中具备的方法,不可访问子类中的方法;即访问的局限性。
前提:实现或继承关系;覆写父类方法。

什么是面向对象思想?面试必答题相关推荐

  1. 关于面试中谈谈你对面向对象思想的认知的小结

    关于面向对象思想,想必在面试中被问到是家常便饭的事,今天结合自己的体会(虽然工作一年没怎么写过C++),和借助于互联网信息,对较好的观点进行了汇总(大神可以绕道了,哈哈.).当然在提到面向对象思想的同 ...

  2. 面向对象编程-面试篇

    面向对象编程-面试篇 什么是面向对象思想? 面向对象是一种思想,是基于面向过程而言的,就是说面向对象是将功能等通过对象来实现,将功能封装到对象之中,让对象去实现具体功能细节. 特点: 1.将复杂的事情 ...

  3. 第0篇 面向对象思想

    一 面向对象思想的起源 面向对象(Object-Oriented)思想最初起源于20世纪60年代末的simula67语言.面向对象方法的基本要点首次在simula语言中得到了表达和实现.80年代,位于 ...

  4. 前端小白用面向对象思想实现元素拖拽

    上篇文章分享了如何用面向对象思想编写选项卡,在文章最后留了一个拖拽的例子,希望大家可以试着写一下,现在我就谈谈我在这过程中遇到的一些问题和解决方法.(本文主要是想和js初学者分享经验,代码中的更改th ...

  5. java有无参数求长方形的周长面积_用java面向对象思想编程求长方形的周长和面积...

    //面向的重要体现就是接口的使用 //甲 interface zfx { double mianji(); double zhchang(); } //乙 class zfxing implement ...

  6. 四大发明之活字印刷——面向对象思想的胜利

    四大发明之活字印刷--面向对象思想的胜利 话说三国时期,曹操带领百万大军攻打东吴,大军在长江赤壁驻扎,军船连成一片,眼看就要灭掉东吴,统一天下,曹操大悦,于是大宴众文武,在酒席间,曹操诗性大发,不觉吟 ...

  7. Python__面向对象思想

    目录 一.Python中的面向对象思想 二.类和对象 Python 是一种面向对象的编程语言,不过,Python 与 C++ 一样,还支持面向过程的程序设计.在 Python 中完全可以使用函数.模块 ...

  8. 树结构之树和二叉树的概念以及如何用面向对象思想进行结构定义01

    树和二叉树的概念及结构定义 前言 一.树的基本概念及代码层面如何定义 1.树的概念 2.代码层面树如何定义 二.二叉树的基本概念及代码层面如何定义 1.二叉树的概念 2.代码层面二叉树如何定义 3.二 ...

  9. IOS应用管理学习,进阶,涉及字典转模型,工厂方法,面向对象思想,页面布局等

    IOS应用管理学习,进阶,涉及字典转模型,工厂方法,面向对象思想,页面布局等 前言:人为规定的参数 每一个 小view视图 宽度 80 高度 90 数据类型 CGFloat 定义, 3 列,数据类型 ...

  10. 浅谈面向对象思想下的 C 语言

    如何使用OO思维方式 面向对象(object Oriented,简称:OO)在于用"找对象"的方式去规划和描述问题. 一.怎样"找对象" (思维过程) &quo ...

最新文章

  1. centos查看模块信息和模块路径
  2. Redis源码解析:21sentinel(二)定期发送消息、检测主观下线
  3. 一步步编写操作系统 1 部署工作环境 1
  4. 175. 组合两个表
  5. 实验大作业c语言实现简单ftp,C 语言实现 FTP 服务器
  6. 【java】java JVM如何科学的设置内存参数 虚拟机调优案例
  7. java中什么泛型_Java中的泛型
  8. 如何为Java面试准备项目经验
  9. 兄弟dcp9020cdn手册_兄弟Brother DCP-9020CDN 驱动
  10. [译]关于Android图形系统一些事实真相
  11. Redis的incr命令引发的反序列化异常和ERR value is not an integer or out of range异常
  12. kirin710f是什么处理器_hisiliconkirin710是什么处理器
  13. 让面试官哑口无言的JS奇葩知识,你遇到过吗?
  14. idea中文件提交不了svn怎么办
  15. Fatal error: require(): Failed opening required ‘/home/www/xx/public/../thinkphp/start.php
  16. 单点登录系统设计及实现
  17. SAP WM上架策略为Fixed Bin的Storage Type如何以FIFO出库?
  18. Scrapy:运行爬虫程序的方式
  19. 大数据旅游项目(离线数仓实战)
  20. 华为商城抢购助手_华为推海外版语音助手Celia:六国首发支持三种语言

热门文章

  1. 2018年下半年 软件设计师 答案及详解
  2. 软考《软件设计师》第九章:数据结构与算法
  3. 一个卖报老汉的营销(值得一看)
  4. Redis 主从同步实现过程
  5. ESP32-C3通过ArduinoIDE实现支付宝签名算法RSA2(SHA256withRSA)
  6. 第一个Docker应用栈 HelloWorld
  7. linux http 测试页面,使用 HTTPie 进行 API 测试 | Linux 中国
  8. Andorid Toast倒计时,自定义显示时间
  9. 数据库批量操作中SqlParameter参数传递的问题
  10. 低耦合高内聚什么意思?