title: 面向对象基础
date: 2019-01-20 21:17:05
tags: Interview
categories: Interview
什么是面向过程,什么是面向对象,面向对象的三大基本特征和五大原则是什么
什么是面向过程
将问题分解成一个一个步骤,每一个步骤由函数实现,对函数依次调用。
什么是面向对象
将问题分解成一个一个步骤,对每个步骤进行抽象,形成对象。通过对象之间的相互调用,解决问题
三大基本特征
封装,继承,抽象
五大原则
单一原则
一个类最好只干一件事情,体现高内聚低耦合
开闭原则
思想: 对扩展开放,对修改关闭
李氏替换原则
思想: 子类必须能够替换父类,而父类不能替换子类
依赖倒置原则
依赖于抽象而不是依赖于具体类
接口隔离原则
思想: 使用多个小的专门的接口,而不是一个大的胖的接口。
实现:
-
可以通过增加一个类来委托它做某些事
-
多重继承分离
Java与C++同为面向对象语言,他们的区别有哪些,各有什么优缺点呢
-
最主要的区别:
C++是编译型语言,执行速度快,效率高,依赖于编译器,跨平台差
Java是解释型语言,生成中间Java字节码,JVM对字节码进行解释执行字节码
Java也有人说是半编译半解释型语言,由javac编译成字节码文件,然后由JVM虚拟机进行逐行解释
-
C++是平台相关的,Java是平台无关的
-
C++对所有的数字类型有标准的范围限制,但是字节长度与具体实现相关,深入理解操作系统这本书中曾提过,确实是不一样。Java在所有平台上对所有的基本类型都有着标准的范围限制和字节长度
-
C++支持指针,支持值传递和引用传递,Java只有值传递
-
C++需要显示的进行内容回收,而Java自动垃圾回收
-
C++支持多继承,Java只支持单继承