接口概念的引入
接口的设计初衷是是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
通俗的说,就是你在设计多个java类的时候,会存在要重复写一些类似的方法,或者想要多继承情况。一个一个写很麻烦,你为了方便,就把这些方法类似的地方单独写一个类,然后在需要的时候给它拿出来用。
举个简单的例子:你想要收集班级里同学的信息,包括名字性别身高体重。你要是拿着一张纸一个一个问,然后写,很麻烦。于是你把性别身高体重输入到文档里,在每一项后面留一个空写成一个表,打印之后分发给同学填写,然后再收上来。提高了效率
这个表格就是接口的概念。接口可以理解为一种特殊的类,里面全部是由全局常量和公共的抽象方法所组成。接口是解决Java无法使用多继承的一种手段,但是接口在实际中更多的作用是制定标准的。或者我们可以直接把接口理解为100%的抽象类,既接口中的方法必须全部是抽象方法。
注:表格的例子只是为了方便理解,并不完全一致。
接口的语法实现
下面实现一个简单的接口
接口部分
//A simple interface
interface in1{
// public, static and final
final int a= 10;
// public and abstract
void display();
}
测试部分
class testclass implements in1{
//Implementing the capabilities of
// interface.
public void display(){
System.out.println("Geek");
}
// Driver code
public static void main(string[] args){
testclass t=new testclass();
t.display();
System.out.println(a);
}
}
结果就是
先创建了接口,里面定义了变量a的值,和一个抽象方法display(制作表格)
再在测试类中implements接口,重写方法display,写了一个打印Geek(填表)
最后出来的内容就是Geek和10(表格上的原有的加上填写内容)
注意事项
1.我们不能直接去实例化一个接口,因为接口中的方法都是抽象的,是没有方法体的,这样怎么可能产生具体的实例呢?但是,我们可以使用接口类型的引用指向一个实现了该接口的对象,并且可以调用这个接口中的方法。
2.一个类可以实现不止一个接口。
3.一个接口可以继承于另一个接口,或者另一些接口,接口也可以继承,并且可以多继承。
4.一个类如果要实现某个接口的话,那么它必须要实现这个接口中的所有方法。
5.接口中所有的方法都是抽象的和public的,所有的属性都是public,static,final的。
6.接口用来弥补类无法实现多继承的局限。
7.接口也可以用来实现解耦。