直接把方法写在类当中不就可以了? 就是说去掉类名后面的Implements 接口 ,可以不可以呢?
统一访问: 接口的最主要的作用是达到统一访问,就是在创建对象的时候用接口创建,【接口名】 【对象名】=new 【实现接口的类】,这样你像用哪个类的对象就可以new哪个对象了,不需要改原来的代码,就和你的USB接口一样,插什么读什么,就是这个原理。如果我用接口,one.method1(); 那样我new a();就是用a的方法,new b()就是用b的方法
这个就叫统一访问,因为你实现这个接口的类的方法名相同,但是实现内容不同。
多重继承: 另外java用接口还有一个好处,就是java不支持多重继承,但是可以实现多个接口,这个在某种程度上可以看做进行多重继承的一种办法。
首先这样写是肯定没有错误的,在我们初期学期的时候还没有体现到接口的价值。但是当我们在做项目时,运用接口以后会很方便。因为接口里面只有简单的方法的声明。或者一些公用的东西。大家都去实现它的话比每次重新定义要方便很多。 对于接口的作用,在一些小的项目上,很难看出其发挥的优势。这就使一些经常的做小项目的开发人员,做时间久了就感觉不到它有什么好的,有时候写起来还麻烦,干脆不用了。其实,在一些大项目上,接口的作用是发挥地相当的明显的。
比如: 如果你开发业务逻辑代码,当你好不容易的实现了它全部的功能,突然用户需求要改,你在修改你代码的同时,调用你代码的其它人也会改,如果代码关联性 强的话,会有很多人都要改动代码,这样一来二去,程序会变得相当的不稳定,而且可能还会出现更多的新Bug,所有人都可能会陷入混乱。
但如果使用接口的话,在你使用它之前,就要想好它要实现的全部功能(接口实际上就是将功能的封装)。确定下这个接口后,如果用户需求变了,你只要重新写它 的实现类,而其它人只会调用你的接口,他不管你是怎么实现的,它只需要接口提供的功能。这样,很可能只需要把你的代码修改就可以了,其他人什么都不用做。 同时:这样做的话,使得开发人员能够分工明确,只要确定下来接口了,就可以同时进行开发,提高开发效率。另外,使用接口还有使用方便,可读性强,结构清晰 等优点。
定义一个接口,可以有多种实现。变量声明为接口变量,调用接口方法,以后切换实现类的时候,原有代码不用修改。
解耦,可扩展这是设计接口的主要原因之一
如果有两个父类,两个父类里有一个相同的方法,那么作为子类应该怎么继承这个方法?父类1的还是父类2的? 但是实现多个接口则没问题,因为不管哪个接口,调用的都是同一个实现,因为只有方法名! 而且单继承的目的之一,就是降低复杂度,减少维护难度
继承:描述事物的自然属性和行为的复用。接口:描述事物的社会属性和行为的复用。因为继承父类包括实现,继承接口只包括接口,就是这样。 接口定义的是行为,比如走,很多对象都可以实现这个行为 但类定义的是对象的属性和具体行为
class 负责实现, interface负责接口; 多继承最麻烦的问题就是冲突, 冲突主要体现在 实现的时序和传入参数, 传出参数。这几个方面对于实现来说,父类发生时序问题时,使得语言本身变得无比复杂,而多继承问题在实现本身是可以通过很多方式解决的。而对于接口来说,传入参数冲突是overload,则不是问题,,只有传出参数这个问题是接口多继承不允许的例如:
public interface IA { void doSomething(); } public interface IB { Integer doSomething(); } public interface IAB extends IA, IB { @Override public void doSomething(); @Override public Integer doSomething(); }这种情况编译器会告诉你: IA, IB 接口冲突,是不允许的。