我参加过大大小小n场面试,被好几位面试官问到过:能不能谈谈面向对象的几大特征?什么是面向对象?对于这两个问题,我始终觉得一定要理解,其实不只是这种概念题(姑且算它是概念题吧),包括各种语法都应该去理解它的本质,就跟做数学题一样,理解公式的本质才是最有用、高效的学习方法。在理解面向对象的概念之前,我们先背背面向对象几大特征吧-------------抽象、封装、继承、多态。

(一)抽象
从某一类型的人、事、物中抽出其共性,例如属性、方法,接着将抽象出的属性和方法放入一个类中,这就完成了一个抽象。
(二)封装
一个类实例化后,有专门对外暴露的方法、属性,还有一部分对外不暴露,不管暴露与否,这些都是封装在该类的实例中,外人访问需要权限。
(三)继承
对事物不可能无限制的抽象,抽象后也不一定适用于相似的场景。就比如有一个类“狗”----Dog,拥有年龄、毛色等属性或方法,但是现在我现在要定义中华田园犬这个类,那么是重新定义么,显然不现实,此时可以继承extends Dog,对其中的某些属性或方法进行重写,当然了,也可以添加自己的属性或方法。
(四)多态
多态,又分两种,重载或重写。重载:两个方法,因为参数数量不同或类型不同,决定执行哪个,这是编译时多态。子类重写父类方法,这是运行时多态。具体,我后期再补充,我先天天更新点,把架子都搭起来,然后再慢慢补充。

最新文章

  1. ECharts图表中级入门之formatter:夜谈关于ECharts图表内的数据格式化方法
  2. E:in-range伪类选择器与E:out-of-range伪类选择器
  3. “PMS-基础权限管理系统”实施某谱OA系统经验总结
  4. IO流--文件处理
  5. windows svn
  6. < java.util >-- Collection接口
  7. jooml二次开发---添加文章组件
  8. rsyslog 一重启就会开始同步之前所有通配的日志文件
  9. Java Base64编码与图片互转
  10. Leetcode_137_Single Number II
  11. Java异步NIO框架Netty实现高性能高并发
  12. 在鼠标右键上加入使用notepad++编辑【转】
  13. DWM1000 收发RXLED TXLED控制代码修改
  14. Linux替换文件内容sed命令
  15. 解决修改sources.list之后update NO_PUBKEY错误
  16. MT【236】必要性探路
  17. 魅族手机USB调试无法打开、log无法打印
  18. 【BZOJ1452】[JSOI2009]Count(树状数组)
  19. Windows Update 自动更新 设定 被锁(变灰)
  20. LA 3026 && POJ 1961 Period (KMP算法)

热门文章

  1. 21-Perl 发送邮件
  2. Digester库
  3. char 、 unsigned char 互相转化
  4. 帝国cms 此栏目暂无任何新增信息处理办法
  5. java ftp retrieveFile 较大文件丢失内容
  6. linux tty终端个 pts伪终端 telnetd伪终端
  7. Java面向对象(一)
  8. python网络编程:socket半连接池、UDP通讯模板
  9. 【TCP】拥塞控制
  10. Jumpserver1.4.1安装