java中接口有什么作用?请创建一个接口(举例)
2015-09-13 17:57
645 查看
接口的作用就是把使用接口的人和实现接口的人分开,实现接口的人不必要关心谁去使用,而使用接口的人也不用关心谁实现的接口,由接口将他们联系在一起。以上像一段绕口令,那么通过下面的几段程序解释: 1、以生产和使用一台计算机为例,首先,我们定义了一个显卡的接口,他里面有显示功能和获取显卡名称的功能: interface VidioCard { void display(); String getName(); } 2、显卡的生产者来了,他必须实现接口中定义的所有方法,也可以自己增添若干方法: class HaolongVidio implements VidioCard { String name="Haolong's vidiocard"; void setName(String name){ this.name=name; } public void display(){ System.out.println("The Haolong's vidiocard is running!!"); } public String getName(){ return name; } }; 显卡制造商生产出了显卡,并且通过setName方法贴上了自己的商标,而通过getName方法可以让使用者知道这块显卡的制造商。 3、现在显卡已经生产出来了,但是我们还需要一块主板,把生产出来的显卡插到主板上才能够使用,那么我们去买主板: class MainBorad { String cpuname; VidioCard vc; void setCPU(String cpuname){ this.cpuname=cpuname; } void setVidioCard(VidioCard vc){ this.vc=vc; } void run(){ System.out.println("wudi-mainbord!"); System.out.println(vc.getName()); vc.display(); System.out.println("mainbord is running successful!"); } }; 这是主板厂商生产的主板,这也就是我们所说的接口的使用者,在他生产主板的时候并不知道用户使用的是哪块显卡(程序中这样理解:Mainborad这个类只知道接口VidioCard中有哪些方法,但是并不知道接口的实现类HaolongVidio是怎么去实现接口的,也就是生产主板的厂商并没有必要考虑显卡是哪个厂商的,他要做的只是根据接口把显卡插槽做好,接口里没有实现的方法相当于插槽),但是他留出来了显卡的插槽(插槽就是接口),也就是他不关心谁实现的接口,但是他可以使用接口,预留出显卡的插槽让用户去选购显卡。 4、现在我们用户开始组装计算机了: public class ChengDuActor { public static void main(String [] args){ HaolongVidio hv=new HaolongVidio();//买了一块HaolongVidio显卡 MainBorad mb=new MainBorad();//买了一块主板 mb.setCPU("Intel");//买的是Inter主板 mb.setVidioCard(hv);//把HaolongVidio插到主板上(通过主板上setVidio方法) //System.out.println(hv.getName()); mb.run();//开电脑运行 System.out.println("success"); } }; 以上看出接口的作用就是大力实现了java的开源性,使软件开发过程优化,接口重要的特征是实现了多样性,能够很好地解决C++中遗留的多继承中出现的问题。
相关文章推荐
- java程序性能优化第三章
- java__泛型
- Spring MVC @ResponseBody 提示 406 The resource identified by this request……
- Java记录 -28- String Literals字面值
- apktool + eclipse 调试smali
- java-使用SImpleDateFormat格式化时间输出
- Java记录 -27- String的intern方法
- springMVC是线程安全的吗?
- spring mvc jsp页面无法解析
- java中vector与arraylist的区别
- spring+struts2实现上海市市区街道级联
- ArrayList底层实现(JAVA)
- 关于spring整合hibernate 懒加载异常解决方案
- Java I/O重定向
- Spring MVC POST中文乱码解决方案
- patchca整合Spring MVC生成超炫的验证码
- Java jdbc数据库连接池
- java项目采用exe4j打包成exe档
- 手写的java实体类和json转化。
- Spring配置Hibernate框架事务