问:面向对象的特征有哪些方面?

答:面向对象的特征主要有以下几个方面: 
- 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。

抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。

- 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段

- 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。

面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。我们在类中编写的方法就是对实现细节的一种封装;我们编写一个类就是对数据和数据操作的封装。

可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口(可以想想普通洗衣机和全自动洗衣机的差别,明显全自动洗衣机封装更好因此操作起来更简单;我们现在使用的智能手机也是封装得足够好的,因为几个按键就搞定了所有的事情)。

- 多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。

简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。多态性分为编译时的多态性和运行时的多态性。如果将对象的方法视为对象向外界提供的服务,那么运行时的多态性可以解释为:当A系统访问B系统提供的服务时,B系统有多种提供服务的方式,但一切对A系统来说都是透明的(就像电动剃须刀是A系统,它的供电系统是B系统,B系统可以使用电池供电或者用交流电,甚至还有可能是太阳能,A系统只会通过B类对象调用供电的方法,但并不知道供电系统的底层实现是什么,究竟通过何种方式获得了动力)。

方法重载(overload)实现的是编译时的多态性(也称为前绑定),而方法重写(override)实现的是运行时的多态性(也称为后绑定)。

运行时的多态是面向对象最精髓的东西,要实现多态需要做两件事:

1). 方法重写(子类继承父类并重写父类中已有的或抽象的方法);

2). 对象造型(用父类型引用引用子类型对象,这样同样的引用调用同样的方法就会根据子类对象的不同而表现出不同的行为)。

Java常考面试题1--面向对象的特征相关推荐

  1. 牛客网java常考面试题笔记

    1.   什么是Java虚拟机?为什么Java被称作是"平台无关的编程语言"? Java虚拟机是一个可以执行Java字节码的虚拟机进程. java的跨平台不是java源程序的跨平台 ...

  2. Java常考面试题(一)

    https://blog.csdn.net/linzhiqiang0316/article/details/80473906 转载于:https://www.cnblogs.com/xinruyi/p ...

  3. 由浅入深 65个JS常考面试题

    由浅入深逐个击破 JS常考面试题(上篇) 1. 介绍一下JS的基本数据类型,值是如何存储的? JavaScript一共有8种数据类型,其中有7种基本数据类型:Undefined.Null.Boolea ...

  4. 计算机网络基础常考面试题总结

    计算机网络基础常考面试题总结 1.OSI,TCP/IP,五层协议的体系结构,以及各层协议 答:OSI分层 (7层):物理层.数据链路层.网络层.传输层.会话层.表示层.应用层. TCP/IP分层(4层 ...

  5. 操作系统之常考面试题

    操作系统之常考面试题 目录: 操作系统概述 进程的描述与控制 存储器管理 处理调度与死锁 注:在牛客上复习java摘录的,便于自己复习. 地址连接:https://www.nowcoder.com/t ...

  6. php高中级程序员面试题,PHP 程序员面试笔试常考面试题精讲

    最近假期的原因,决定在chat开了这门课,希望对你有帮助. 主要总结汇总了 PHP 面试过程中最爱问的几道面试题.这些面试题可以很好的帮助面试者准备,并让你在面试过程中很好的回答这些面试题,轻松拿下 ...

  7. 30道计网常考面试题含答案总结!血赚!

    往期热门文章: 1.Spring官方为什么建议构造器注入?2.还在用 Random生成随机数?试试 ThreadLocalRandom,超好用!3.这些年 Java8 的 Optional 你用对了吗 ...

  8. java comparator_【面试题】Java必考面试题全集(15)

    Java基础面试题(15) 1:Comparator 与Comparable 有什么不同? 2:Object中有哪些方法? 3:说下jdk8中的一些新特性 4:在64 位 JVM 中,int 的长度是 ...

  9. JS 异步编程及常考面试题

    JS 异步编程及常考面试题 并发(concurrency)和并行(parallelism)区别 涉及面试题:并发与并行的区别? 异步和这小节的知识点其实并不是一个概念,但是这两个名词确实是很多人都常会 ...

最新文章

  1. OpenGL Indirect Culling间接剔除实例
  2. C# 数据库系统中使用GDI+绘制柱状图
  3. python传送带和斐波那契
  4. 在Linux下用源码编译安装apache2
  5. 将非事务性资源绑定到JTA事务中的几种模式
  6. hdu1521 指数型母函数
  7. Javascript——DOM编程
  8. c#与获得文件夹路径,站点目录
  9. 模仿豆丁、百度文库播放器
  10. 360 组织全局 HOOK 的 dll 加载
  11. EXCEL公式获取幂函数系数解析
  12. 【51单片机快速入门指南】5.2:SPI读取 12位ADC XPT2046 芯片
  13. PDF Forte Pro(PDF转换器)v3.1.2免费版
  14. windows10下装pytorch简单步骤和中遇见的一些问题
  15. Jpress项目学习纪录片(一) -- 环境搭建
  16. 史上最恐怖的10篇超短篇鬼故事(转…
  17. 面向中国企业关系抽取的双向门控递归单元神经网络
  18. Debian11.5 最小化安装后更改主机名、安装桌面、设置默认语言、时区、静态IP、局域网DNS等
  19. C#、TypeScript 之父 Anders Hejlsberg:“会用 Excel 的,都是程序员 ”
  20. 如何获取自己QQ里面的所有qq好友号码

热门文章

  1. 【书影观后感 六】若无真情,万物皆虚
  2. 6.13-python学习
  3. ubuntu20.04下装matlab2019b
  4. 强网杯 2019[supersqli]
  5. VsCode快速生成html 骨架,使用中文,在浏览器打开
  6. Volatile详解,太详细了
  7. linux定时器之alarm
  8. c语言,十六进制转十进制
  9. 数据结构----折半查找的查找效率以及折半查找成功与失败的ASL
  10. Linux内核中段伪例,利用Linux内核里的Use-After-Free(UAF)漏洞提权