1、什么是面向对象?什么是面向过程?
面向过程:指的是按照功能来分析系统需求,主要原则包括自顶向下、逐步求精、模块化等。
面向对象:基本思想是使用类、对象、继承、封装、消息等基本概念进行程序设计。
2、面向对象的三大基本特征和五大基本原则?
三大基本特征
- 封装:指的是将对象的实现细节隐藏起来,通过公共方法提供功能。
- 继承:子类继承父类后,将直接获得父类的属性和方法,是一种软件复用的手段
- 多态:父类变量指向子类对象,运行时表现子类特征,同一个类的对象在执行同一个方法是,可以表现多种行为特征。
五大基本原则
- 单一职责原则:一个类应该仅有一个引起它变化的原因。
- 开放封闭原则:对扩展是开放的,对更改是封闭的。
- 里氏替换原则:子类可以在任何地方都能替换父类。
- 依赖倒置原则:逆转传统结构中的上层模块依赖下层模块的关系,层模块不要依赖低层模块,称之为依赖倒置原则。
- 接口隔离原则:使用单个接口不如使用多个专门的接口。
3、如何实现平台无关性
能够在JVM上运行的语言除了java还有Clojure、Groovy、JRuby、Jython、Scala、Kotlin等。
实现平台关性的基础是虚拟机和字节码存储格式。Java虚拟机不和包括java语言在内的任何语言绑定,只与Class文件这种二进制文件所关联,文件中包含Java虚拟机指令集和符号表以及其他辅助信息。Java语言有对应的语言规范,虚拟机也有对应的虚拟机规范,两个规范之间是没有关联的,并且虚拟机设计初衷就是能够支持多语言。