[size=medium]java接口作用是什么?
一直对java中接口的作用不是太明了。虽说一个类可以implements多个接口,但接口本身只是定义了几个方法,没有任何实际的意义,具体的实现还是要在实现它的类中进行。这样的话,接口还有什么意义呢?
举个例子来说,现有
public interface I
{
method1(){};
}
class A implements I
{
method1()
{
somefunction......
}
}
这样写和不实现接口,直接将method1作为class A的方法有什么区别呢?
即:
class A
{
method1()
{
somefunction......
}
}
能不能具体举个例子来说明它们在使用上的区别呢?
满意回答
接口的最主要的作用是达到统一访问,就是在创建对象的时候用接口创建,【接口名】 【对象名】=new 【实现接口的类】,这样你像用哪个类的对象就可以new哪个对象了,不需要改原来的代码,就和你的USB接口一样,插什么读什么,就是这个原理。就像你问的,都有个method1的方法,如果我用接口,我上面就可以one.method1();是吧?那样我new a();就是用a的方法,new b()就是用b的方法这样不方便吗?
这个就叫统一访问,因为你实现这个接口的类的方法名相同,但是实现内容不同
我用接口来定义对象不就可以做到统一访问了吗?接口主要针对多个类实现它来说的,要是只有一个类当然可以不用接口了.你这样想,我做一个USB接口,有个read()抽象方法,然后mp3类实现,U盘类实现,移动硬盘类实现,这样我用的时候用USB a=new 【类名】;这样a.read();要是我类名里写U盘,就读U盘,写mp3就读mp3,而这个名字可以从属性文件里读,你写哪个就用哪个了,呵呵。
与abstract 类的比较:
问题:
请问这样做接口和最顶层的抽象父类不就基本一样了吗?就像一个类A定义成abstract之后再定义几个abstratct的方法,其子类中就会有相应的实现,【abstract类名】【对象名】=new 【子类】,后面的全部都可以用你上面所说的那样做,那最后接口似乎意义也不会太大了啊。
回答:
java单继承的概念要记住,接口的存在给java提供了实现多继承的可能,一个类只能继承至一个父类,但是可以实现多个接口。 几个差别 1:代码构成 接口由全局常量和抽象方法构成,抽象类跟普通类的区别就是抽象类中有抽象方法。 2:作用 抽象类由于不能直接实例化对象,所以只能被继承,起到的作用的就是将子类共性的问题提取出来实现,个性的问题子类实现;接口就是用于外部函数调用,起到一个封装的作用,我不希望外部看到我的具体实现,我只给他提供调用的方法名称。3:接口是用于实现的,在实现类中必须实现接口中的全部抽象方法,抽象类是用于继承的,不必讲所以的抽象函数实现,就像一个子类继承一个父类操作。
[/size]
引用地址:
[url]http://zhidao.baidu.com/question/71369049.html[/url]
一直对java中接口的作用不是太明了。虽说一个类可以implements多个接口,但接口本身只是定义了几个方法,没有任何实际的意义,具体的实现还是要在实现它的类中进行。这样的话,接口还有什么意义呢?
举个例子来说,现有
public interface I
{
method1(){};
}
class A implements I
{
method1()
{
somefunction......
}
}
这样写和不实现接口,直接将method1作为class A的方法有什么区别呢?
即:
class A
{
method1()
{
somefunction......
}
}
能不能具体举个例子来说明它们在使用上的区别呢?
满意回答
接口的最主要的作用是达到统一访问,就是在创建对象的时候用接口创建,【接口名】 【对象名】=new 【实现接口的类】,这样你像用哪个类的对象就可以new哪个对象了,不需要改原来的代码,就和你的USB接口一样,插什么读什么,就是这个原理。就像你问的,都有个method1的方法,如果我用接口,我上面就可以one.method1();是吧?那样我new a();就是用a的方法,new b()就是用b的方法这样不方便吗?
这个就叫统一访问,因为你实现这个接口的类的方法名相同,但是实现内容不同
我用接口来定义对象不就可以做到统一访问了吗?接口主要针对多个类实现它来说的,要是只有一个类当然可以不用接口了.你这样想,我做一个USB接口,有个read()抽象方法,然后mp3类实现,U盘类实现,移动硬盘类实现,这样我用的时候用USB a=new 【类名】;这样a.read();要是我类名里写U盘,就读U盘,写mp3就读mp3,而这个名字可以从属性文件里读,你写哪个就用哪个了,呵呵。
与abstract 类的比较:
问题:
请问这样做接口和最顶层的抽象父类不就基本一样了吗?就像一个类A定义成abstract之后再定义几个abstratct的方法,其子类中就会有相应的实现,【abstract类名】【对象名】=new 【子类】,后面的全部都可以用你上面所说的那样做,那最后接口似乎意义也不会太大了啊。
回答:
java单继承的概念要记住,接口的存在给java提供了实现多继承的可能,一个类只能继承至一个父类,但是可以实现多个接口。 几个差别 1:代码构成 接口由全局常量和抽象方法构成,抽象类跟普通类的区别就是抽象类中有抽象方法。 2:作用 抽象类由于不能直接实例化对象,所以只能被继承,起到的作用的就是将子类共性的问题提取出来实现,个性的问题子类实现;接口就是用于外部函数调用,起到一个封装的作用,我不希望外部看到我的具体实现,我只给他提供调用的方法名称。3:接口是用于实现的,在实现类中必须实现接口中的全部抽象方法,抽象类是用于继承的,不必讲所以的抽象函数实现,就像一个子类继承一个父类操作。
[/size]
引用地址:
[url]http://zhidao.baidu.com/question/71369049.html[/url]