java接口作用是什么?
答案:4 悬赏:40 手机版
解决时间 2021-01-26 18:56
- 提问者网友:流星是天使的眼泪
- 2021-01-26 05:38
java接口作用是什么?
最佳答案
- 五星知识达人网友:雾月
- 2021-01-26 06:43
接口是java中的一大特性和一大支柱性的优点
接口用来别具体的类实现,会自动继承接口中的抽象方法给这类继承他的类
接口有点像是复制的意思.只不过是java中是这么写罢了
现在已经开始"面向接口编程"时代,利用接口来解耦
接口中的方法一定都会被继承他的类实现`,如果少继承了或者没有继承`会报错
比如说`你写了10个类,每个类中都需要一些同名且返回值一样的方法,这时候就可以用接口,把这些方法全部写在一个接口中,让这10个类去实现,这样10个类中就有了这些方法`只需要自己具体的去填写方法内部了
接口用来别具体的类实现,会自动继承接口中的抽象方法给这类继承他的类
接口有点像是复制的意思.只不过是java中是这么写罢了
现在已经开始"面向接口编程"时代,利用接口来解耦
接口中的方法一定都会被继承他的类实现`,如果少继承了或者没有继承`会报错
比如说`你写了10个类,每个类中都需要一些同名且返回值一样的方法,这时候就可以用接口,把这些方法全部写在一个接口中,让这10个类去实现,这样10个类中就有了这些方法`只需要自己具体的去填写方法内部了
全部回答
- 1楼网友:十年萤火照君眠
- 2021-01-26 08:29
java接口里定义的方法是public abstract 型的。是抽象的。你要在具体的实类中对它实例化。这个实例化的结果就是接口的作用的体现。比如,两个运动员,在跑和跳的这项能力中,一个短跑和三级跳很厉害。一个长跑和立定跳远很厉害。可如下编程:
定义一个运动的接口(Interface Sport)。里面有跑(void run())和跳(void jump())两个抽象方法。再定义两个类Athlete1和Athlete2。Athlete1中,将“跑”实例化为“短跑”,将“跳”实例化为“三级跳”。Athlete2中,将“跑”实例化为“长跑”,将“跳”实例化为“立定跳远”。将张三创建为类Athlete1的对象,将李四创建为类Athlete2的对象。
定义一个运动的接口(Interface Sport)。里面有跑(void run())和跳(void jump())两个抽象方法。再定义两个类Athlete1和Athlete2。Athlete1中,将“跑”实例化为“短跑”,将“跳”实例化为“三级跳”。Athlete2中,将“跑”实例化为“长跑”,将“跳”实例化为“立定跳远”。将张三创建为类Athlete1的对象,将李四创建为类Athlete2的对象。
- 2楼网友:持酒劝斜阳
- 2021-01-26 08:09
接口是 java 多态的一种形式
interface A { public void print();}
class B 和 class C 都实现了接口 a
class D {
public void d(A a){ a.print();}
//这个方法要求传一个A对象的引用 ,这里只要是实现了接口A的对象都可以做为参数,会调用这个对象所实现的print()方法,有点像继承重载,但是接口更灵活,可以实现多个接口,继承只能继承一个父类.
}
interface A { public void print();}
class B 和 class C 都实现了接口 a
class D {
public void d(A a){ a.print();}
//这个方法要求传一个A对象的引用 ,这里只要是实现了接口A的对象都可以做为参数,会调用这个对象所实现的print()方法,有点像继承重载,但是接口更灵活,可以实现多个接口,继承只能继承一个父类.
}
- 3楼网友:一叶十三刺
- 2021-01-26 08:00
接口的最主要的作用是达到统一访问,就是在创建对象的时候用接口创建,【接口名】 【对象名】=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,而这个名字可以从属性文件里读,你写哪个就用哪个了,呵呵。
这样不方便吗?
这个就叫统一访问,因为你实现这个接口的类的方法名相同,但是实现内容不同
我用接口来定义对象不就可以做到统一访问了吗?接口主要针对多个类实现它来说的,要是只有一个类当然可以不用接口了.你这样想,我做一个USB接口,有个read()抽象方法,然后mp3类实现,U盘类实现,移动硬盘类实现,这样我用的时候用USB a=new 【类名】;这样a.read();要是我类名里写U盘,就读U盘,写mp3就读mp3,而这个名字可以从属性文件里读,你写哪个就用哪个了,呵呵。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯