java新手:接口中的方法在用的时候还要实现,为什么还要定义。

接口困扰好久了求解答。纯属新手提问。请勿揍脸...................................................................................................................................

看你这问题就知道你是新手了。用我们老师的话说就是:定义了接口就好像是插座定义了标准一样,不会乱七八糟,插座都是长那样,
只有两个和三个的区别,不会说距离什么的不合。如果不定义,厂商们都搞得乱七八糟,你找插座都得找半天。

一个类可以实现多个接口,接口弥补了类的不能多继承缺点。不同的类要求实现的方法的具体细节可以不一样,所以先定义,再实现

没有接口,就没办法自定义代码。

用过Java的排序没有?为什么一个排序算法,又可以排整数,又可以排浮点数,既可以按照用户名排序,又可以按照id排序?
因为排序的算法相同,只是比较两个对象的方式不同。
因此Java的排序,让你传入一个实现如何比较两个元素的接口(Compareable接口)。

当然,按照你说的,接口定义了,还要实现,Java最好不用接口,自己写死拉倒。但是这样的排序算法就丧失了随心所欲按照你需要条件排序的功能了。

提高程序的可扩展性,降低代码的圈复杂度

首先你要知道Java的多态,调用函数时由于多态会找到合适的函数。
接口定义可以让你的程序方便维护;
加入有一段代码:
List list = new ArrayList();
list.add(3);
list.add(4);
...
上述使用数组实现的list,现在我想使用链表,
只需要更改List list = new LinkedList();
而下述代码可以原封不动了
这就是接口的好处。

还有一个例子,
假如比较两个图形的面积,各种图形有各种图形的面积计算公式,
如果不用接口(或者抽象类,某种程度两者是相等的)
就必须写多个比较函数
函数1(三角形,矩形)
函数2(扇形,圆)
....
这样就会有很多的函数

如果定义一个求面积的接口Area(有一个方法getArea)
每种图形都实现这个接口。
那么比较函数就写一个就行
compareArea(Area a1,Area a2){
return a1.getArea - a2.getArea;
}

慢慢的学习就可以见识到接口的好处了

简单的说,接口可以多继承,而类不可以,一个类可以实现多个接口,那么一个类不能继承多个类.

接口只是提供了一个标准,相当于USB的标准,然后每个厂商都按照约定的标准去实现。接口也是这样,只定义标准,具体如何实现,完全看自己。

好好看看java基础知识,。封装,继承,多态