java接口作用是什么?
举个例子来说,现有
public interface I
{
method1(){};
}
class A implements I
{
method1()
{
somefunction......
}
}
这样写和不实现接口,直接将method1作为class A的方法有什么区别呢?
即:
class A
{
method1()
{
somefunction......
}
}
能不能具体举个例子来说明它们在使用上的区别呢? 展开
接口是一种规范
软件开发大多是一个协作性的工作:电器和插座分别是不同人完成的,有了接口大家就能分头开干,都按照接口来办事,各自做完就能轻松地整合到一起。各部分的测试也更加方便。
接口在开发过程中可以快速分离工作内容。
比如调用者在写业务逻辑的时候需要一个功能,可能是数据库访问,或者复杂计算,但是他的工作专注于实现业务逻辑,不想分开精力去做底层实现,那么他只需要先实现一个接口,定义了规范,然后就可以继续他的业务逻辑代码了。而实现者可以根据这个接口规范,做具体的实现。
这样通过使用接口就可以快速的分离工作内容,达到团队并行工作的目的。
扩展资料:
功能
在Java语言规范中,一个方法的特征仅包括方法的名字,参数的数目和种类,而不包括方法的返回类型,参数的名字以及所抛出来的异常。在Java编译器检查方法的重载时,会根据这些条件判断两个方法是否是重载方法。
但在Java编译器检查方法的置换时,则会进一步检查两个方法(分处超类型和子类型)的返还类型和抛出的异常是否相同。
接口实现和类继承的规则不同,为了数据的安全,继承时一个类只有一个直接父类,也就是单继承,但是一个类可以实现多个接口,接口弥补了类的不能多继承缺点,继承和接口的双重设计既保持了类的数据安全也变相实现了多继承。
Java接口本身没有任何实现,因为Java接口不涉及表象,而只描述public行为,所以Java接口比Java抽象类更抽象化。但是接口不是类,不能使用new 运算符实例化一个接口。
参考资料:百度百科-Java接口
这样不方便吗?
这个就叫统一访问,因为你实现这个接口的类的方法名相同,但是实现内容不同
我用接口来定义对象不就可以做到统一访问了吗?接口主要针对多个类实现它来说的,要是只有一个类当然可以不用接口了.你这样想,我做一个USB接口,有个read()抽象方法,然后mp3类实现,U盘类实现,移动硬盘类实现,这样我用的时候用USB a=new 【类名】;这样a.read();要是我类名里写U盘,就读U盘,写mp3就读mp3,而这个名字可以从属性文件里读,你写哪个就用哪个了,呵呵。
定义一个运动的接口(Interface Sport)。里面有跑(void run())和跳(void jump())两个抽象方法。再定义两个类Athlete1和Athlete2。Athlete1中,将“跑”实例化为“短跑”,将“跳”实例化为“三级跳”。Athlete2中,将“跑”实例化为“长跑”,将“跳”实例化为“立定跳远”。将张三创建为类Athlete1的对象,将李四创建为类Athlete2的对象。
接口是java中的一大特性和一大支柱性的优点
接口用来别具体的类实现,会自动继承接口中的抽象方法给这类继承他的类
接口有点像是复制的意思.只不过是java中是这么写罢了
现在已经开始"面向接口编程"时代,利用接口来解耦
接口中的方法一定都会被继承他的类实现`,如果少继承了或者没有继承`会报错
比如说`你写了10个类,每个类中都需要一些同名且返回值一样的方法,这时候就可以用接口,把这些方法全部写在一个接口中,让这10个类去实现,这样10个类中就有了这些方法`只需要自己具体的去填写方法内部了
interface A { public void print();}
class B 和 class C 都实现了接口 a
class D {
public void d(A a){ a.print();}
//这个方法要求传一个A对象的引用 ,这里只要是实现了接口A的对象都可以做为参数,会调用这个对象所实现的print()方法,有点像继承重载,但是接口更灵活,可以实现多个接口,继承只能继承一个父类.
}