JAVA 接口有什么好处?

接口有什么用啊?既然接口仅仅是一种描述,而没有实现,那用接口有什么用呢?直接写一个类,完成一些方法不是更省事么?接口的定义那不是多余的么?见有人说接口就是只知道他是干什么的,而不用知道是怎么实现的,我很纳闷啊,不实现方法的话那不是什么功能都没有么?你知道他能干生么.但是他干不了有什么用啊?

接口是一种规范

软件开发大多是一个协作性的工作:电器和插座分别是不同人完成的,有了接口大家就能分头开干,都按照接口来办事,各自做完就能轻松地整合到一起。各部分的测试也更加方便。

接口在开发过程中可以快速分离工作内容。

比如调用者在写业务逻辑的时候需要一个功能,可能是数据库访问,或者复杂计算,但是他的工作专注于实现业务逻辑,不想分开精力去做底层实现,那么他只需要先实现一个接口,定义了规范,然后就可以继续他的业务逻辑代码了。而实现者可以根据这个接口规范,做具体的实现。

这样通过使用接口就可以快速的分离工作内容,达到团队并行工作的目的。

扩展资料:

功能

在Java语言规范中,一个方法的特征仅包括方法的名字,参数的数目和种类,而不包括方法的返回类型,参数的名字以及所抛出来的异常。在Java编译器检查方法的重载时,会根据这些条件判断两个方法是否是重载方法。

但在Java编译器检查方法的置换时,则会进一步检查两个方法(分处超类型和子类型)的返还类型和抛出的异常是否相同。

接口实现和类继承的规则不同,为了数据的安全,继承时一个类只有一个直接父类,也就是单继承,但是一个类可以实现多个接口,接口弥补了类的不能多继承缺点,继承和接口的双重设计既保持了类的数据安全也变相实现了多继承。

Java接口本身没有任何实现,因为Java接口不涉及表象,而只描述public行为,所以Java接口比Java抽象类更抽象化。但是接口不是类,不能使用new 运算符实例化一个接口。

参考资料:百度百科-Java接口

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-24
这个问题这困扰了我很久,后来我才想明白,大家都说接口就是实现扩展功能用的,这句话其实是最误导人的,因为接口本身并没有实现方法,它只是一条路,是一个工具,千万别想复杂,真正实现功能扩展的是实现方法的对象和调用接口的方法。下面举个栗子。
狗这个类继承了走兽类,它有跑,跳,啃,等方法。但是它不会飞,它的父类也没有这个方法。但是你想让狗有飞这个功能,怎么办呢?当然你可以直接在狗的类中给它添加一个飞的方法就行了。有可能你并不会写这个方法,或者是这个方法需要几千几万行代码,硬写吗?那以后你还想要猪,牛,羊等等都可以飞呢?那又怎么办呢?这时候你发现你有一个类,这个类就叫飞行兽吧。它有一个方法就是飞行,这下好了,你决定让狗继承它,结果发现不能多继承,你又想让狗的父类继承它,结果发现还有其他的走兽不能让他们飞。这时候就需要接口出来了,这个接口我们叫它插翅膀吧,这个接口有一个方法就是插翅膀,但没有实现,因为接口不管你怎么给狗插翅膀。同时你还发现在飞行兽里有一个带参数的构造方法,而参数类型就是这个接口类型。但是狗的类型是狗而不是接口类型,没法作为参数传进去,这时你就可以让狗实现这个接口,这个狗对象就成了插了翅膀的狗,接着通过多态的原理把插了翅膀的狗这个对象传给飞行兽,这狗这就成了飞行兽,可以飞了。
ChiBang chibangdog=new Dog()
FlyShou flydog =new FlyShou(chibangdog)

可以飞的狗就出来了,以后要猪飞就让猪实现插翅膀,要羊飞就让羊实现插翅膀,要牛飞就......直接吹吧。不知道这样说明白没有。
第2个回答  2010-10-31
接口是一个标准,是一个约定,而不是一种实现,接口的目的是为了规范实现类,这样就可以不用具体管实现类,因为你不管怎是实现,我只要知道你是实现了这个接口,那么你肯定有那些方法,那么我调用这个接口的方法就肯定没问题。

举个例子,有一个接口,规定一个方法 int calc(int b);
这个函数用于计算从1到b的和

比如有两个类实现了这个接口
第一类是这么实现的
int calc(int b)
{
int sum = 0;
for(int i=1;i<=b;i++)
sum+=b;
return sum
}

第二个类是这么实现的
int calc(int b)
{
int sum = 0;
sum = (1+b) * b / 2
return sum;
}
可见不管哪个类实现了这个接口,我们只要调用calc方法就能计算出sum,而不用管他是怎么实现的
第3个回答  2011-12-17
1. 避免多继承中各父类含有同名成员时在子类中发生引用无法确定的问题,为了操作方便,增加JAVA的灵活性,达到多继承的效果,用接口来实现。
2. 一个接口只有方法的特征没有方法的实现,但这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
3.是省事,但是代码太多,像软件升级需要继承一样,应尽量缩小代码. 应尽量减少时间
4. 不多余!顾名思义,接口,就是连接两端的一种东西。没有实际意义,仅仅是方便连接
5..向2 看,答案一样!
第4个回答  推荐于2017-11-24
接口实现扩展功能啊 java类与类之间只能单继承 类与接口之间可以多实现啊 像软件升级 不可能改源码 可以定义多个接口增强功能 以后复写接口中的抽象方法追问

不明白,您可以给举个例子么?既然继承了接口了,不就是相当于一个新的类么?肯定是用一个别的名字啊,而且接口里也没有方法的实现,只有个定义,全是空的,那怎么增强功能呢?功能不是需要实现的么?

追答

接口中都是抽象方法 只能靠子类去复写其方法实现功能扩展

class person {
void eat() {
System.out.println("吃饭");
}
public void smoke() {
System.out.println("抽烟");
}
}
Interface inner {
void smoke();
}

简单的小例子 因为抽烟不是人的基础功能 所以定义成父类继承就不合适 定义在父类继承了就变成是人都必须抽烟 所以定义成接口你需要定义person这个类抽烟时你就implements这个接口 就有抽烟功能 而不想继承那样强制性的拥有其父类功能 类与类之间的耦合度降低了 例子不是太好 应该能明白

本回答被提问者采纳