您的位置:首页 > 职场人生

面试-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即可。

继承是一个“是不是”的关系,接口实现则是“有没有”的关系,即是否有这个功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: