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)抽象类主要用来抽象类别,接口主要用来抽象方法。关注事物本质,用抽象类;关注事物操作,用接口。