java接口

接口包含两个方面:抽象类和接口

一 抽象类

  创建抽象类是希望通过这个类来操纵一系列类。

  仅有声明而没有方法体,语法如下:

abstract void f();

包含抽象方法的类叫抽象类,如果一个类包含一个或以上的抽象方法,那么该类必须限定为抽象的。(否则,编译会出错)。

比如:

abstract void a();
String b();
abstract void c();

创建抽象类和抽象方法非常有用,可以使类的抽象性明确起来。

二 接口

创建接口,使用interface关键字。

interface关键字,使抽象的概念更进一步。是一个完全抽象的类,没有提供任何具体实现。

方法默认是public的,也可以自己加上public。接口可以包含域,隐修式的是static和final,最好用大写字母表示。一般不用来表示域.

允许创建一个能够被向上转型为多种基类的类型,来实现某种多重继变种的特性。由此带来完全解耦、多重继承。

接口特性,可以实现多种设计模式:

1、策略设计模式。根据所传递的参数不同,而具有不同行为的方法

2、适配器模式。接受有的接口,并产生新的需要的接口。

3,工厂模式。

三 区别

共同点:1) 都是上层的抽象层。
2) 都不能被实例化
3) 都能包含抽象的方法,这些抽象的方法用于描述类具备的功能,但是不提供具体的实现。

不同点:1)抽象类只能单继承,接口可以多实现

2)抽象类可以有构造方法,接口中不能有构造方法

3)抽象类的变量可以是普通成员变量,pubic、protected;接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。

4)抽象类主要用来抽象类别,接口主要用来抽象方法。关注事物本质,用抽象类;关注事物操作,用接口。

原文地址:https://www.cnblogs.com/luoa/p/10657741.html