面向对象和面向过程
- 面向过程
就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用时一次调用即可。例如一辆汽车,如何启动汽车考虑的是如何起步,加速,刹车,熄火。 - 面向对象
把构成问题的事物分解成对象,建立对象的目的不是为了完成步骤,而是为了描述某个事物在这个解决问题的步骤中的行为。
一辆车用面向对象的思想去实现,汽车的发动机,变速箱等都是汽车属性,做任何操作只要告诉汽车即可。
面向对象的三大特性
- 封装性
是面向对象的核心思想,将对象的属性和行为封装起来,而将对象的属性和行为封装起来的载体就是类,类通常对客户隐藏其实现细节,这就是封装的思想。 - 继承性
当一个类的属性与行为均与现有类相似,属于现有类的一种时,这个类可以定义为现有类的子类。如果多个类具有相同的属性和行为。我们可以抽取出共性内容定义成分类,这时在创建相似的类时只要继承父类即可。 - 多态性
多态的特征表现出多种形态,具有多种实现方式。或者多太是具有表现多种形态的能力的特征。同一个实现的接口,使用不同的实例而执行不同的操作。例如定义一个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即可。
继承是一个“是不是”的关系,接口实现则是“有没有”的关系,即是否有这个功能。
351

被折叠的 条评论
为什么被折叠?



