程序员

关于接口和抽象类的简单理解

2018-04-27  本文已影响0人  YangEvol

抽象类:

抽象类体现了数据抽象的思想,是实现多态的一种机制。

1.由abstract关键词修饰的类称之为抽象类。 

2.抽象类中没有实现的方法称之为抽象方法,也需要加关键字abstract。 

3.抽象类中也可以没有抽象方法。 

4.抽象类中可以有已经实现的方法,可以定义成员变量。

5.抽象类可以多层继承。

接口:

接口提供的只是一种形式,而没有具体的实现。同时实现该接口的实现类必须要实现该接口的所有方法,通过使用implements关键字实现。

1.由interface关键词修饰的称之为接口; 

2.接口中可以定义成员变量,但是这些成员变量默认都是public static final的常量。 

3.接口中没有已经实现的方法,全部是抽象方法。 

4.一个类实现某一接口,必须实现接口中定义的所有方法。 

5.一个类可以实现多个接口。

区别: 

1.抽象层次不同。

    抽象类是对类抽象,而接口是对行为的抽象。抽象类是对整个类整体进行抽象,包括属性、行为,

    接口却是对类局部(行为)进行抽象。

2.设计层次不同。

    抽象类是自下而上来设计的,要先知道子类才能抽象出父类,是自底向上抽象而来的。

    接口不需要知道子类的存在,只需要定义一个规则即可,是自顶向下设计出来的。

3.实现不同。

比如 鸟和飞机都有飞的行为

用抽象类实现:

父类:

飞机:

鸟:

用接口实现:

接口:

飞机:

鸟:

鸟类有吃东西的方法。但用抽象类继承,飞机也要实现吃东西的方法,显然是不合理的,

所以从这里可以看出来,抽象类是抽象的共有的属性或方法。而接口只是抽象了局部的一部分。

抽象类+接口:

鸟:

接口:

上一篇下一篇

猜你喜欢

热点阅读