面试-java基础知识
2017-09-21 10:35
399 查看
面向对象和面向过程
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用时一次调用即可。例如一辆汽车,如何启动汽车考虑的是如何起步,加速,刹车,熄火。
面向对象
把构成问题的事物分解成对象,建立对象的目的不是为了完成步骤,而是为了描述某个事物在这个解决问题的步骤中的行为。
一辆车用面向对象的思想去实现,汽车的发动机,变速箱等都是汽车属性,做任何操作只要告诉汽车即可。
面向对象的三大特性
封装性是面向对象的核心思想,将对象的属性和行为封装起来,而将对象的属性和行为封装起来的载体就是类,类通常对客户隐藏其实现细节,这就是封装的思想。
继承性
当一个类的属性与行为均与现有类相似,属于现有类的一种时,这个类可以定义为现有类的子类。如果多个类具有相同的属性和行为。我们可以抽取出共性内容定义成分类,这时在创建相似的类时只要继承父类即可。
多态性
多态的特征表现出多种形态,具有多种实现方式。或者多太是具有表现多种形态的能力的特征。同一个实现的接口,使用不同的实例而执行不同的操作。例如定义一个Person,对于登录系统,他可以分为管理人员,客户,系统用户。Person p = new Manager(); Person p2 = new Customer();
抽象与封装的区别
抽象从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。
封装
将抽象得到的数据和行为相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成”类”,数据和函数都是类的成员。
抽象是更通用的术语,它的实现由子类来完成,如List的具体子类有ArrayList,LinkedList。
封装是对象封装它自己的状态,并对外部将其隐藏,该类以外的其他类必须通过它的方法和状态进行交互,但不能直接访问类的状态。
接口与抽象类有何区别
public interface InterfaceTest { int x=0; static void Test(){ System.out.println(); } void Test2(); } abstract class TestClass{ private int x; abstract void Test(); protected void Test2(){ } }
接口中的内容都必须声明为public,实现方法时则需要加上static。抽象类只是声明方法时,需要加上abstract。
一个类只能继承一个抽象类,却可以实现多个接口。
抽象类往往用来表示在对问题领域进行分析,设计中得出的抽象概念,是对一类看上去不同,但是本质相同的具体概念的抽象。
即对类的抽象,而接口是对行为的抽象。
抽象类是对整个类的属性和行为进行抽象,而接口是对类局部(行为)进行抽象。
例如,飞机和鸟是不同的事物,他们一个共性就是都会飞,我们就可以设计一个接口Fly,包含fly()方法,让飞机(Airplane)和鸟(Bird)分别根据自己的需要去实现接口方法。而不同的飞机类型只要继承Airplane即可。
继承是一个“是不是”的关系,接口实现则是“有没有”的关系,即是否有这个功能。
相关文章推荐
- 准备Java面试之——Java SE基础知识解答(三)
- [Java面试三]JavaWeb基础知识总结.
- java面试基础知识(二)
- 面试宝典第四章Java基础知识——4.10多线程
- 2017最新Java基础面试笔试知识整理--java基础篇
- 准备Java面试之——Java SE基础知识解答(二)
- java面试基础知识(二)
- Java中的框架基础面试知识
- java面试 --之 java概述与基础知识 (1)
- Java基础知识(面试笔试)
- 【面试】-Java基础知识
- 【Java面试知识点】各大公司Java面试题目汇总-Java基础知识
- java笔试面试基础知识
- java面试资料-基础知识
- java面试 --之 java概述与基础知识 (2)
- 准备Java面试之Java SE基础知识——问题篇
- JAVA程序员面试基础知识
- java面试--java基础知识总结(待续)
- 【面试】-Java基础知识
- java基础知识整理 一些问题的解答(面试)