Java编程之面向接口
本篇内容:
1.接口的引入
2.接口的实现
3.抽象类与接口的区别
4.小结
1.接口的引入
接口,类似于实际生活中的插座接口,只要你的插头符合接口的规范,比如大小、形状等,那么你的插头就能使用这个插座接口。
**接口不是类,但类似于类。此话怎讲?我们先瞧瞧接口到底是如何在Java中实现的,为啥要使用接口呢?**请先看一个例子:假设需要实现一个 U 盘和一个硬盘类,都有传送数据的方法,初步实现如下:
public class U盘 {
public void service() {
System.out.println("U盘开始传送数据");
}
}
public class 硬盘 {
public void service() {
System.out.println("硬盘在传送数据");
}
}
?
public class 电脑 {
public void 传送数据(硬盘 usb) {
usb.service();
}
public void 传送数据(U盘 usb) {
usb.service();
}
}
上述编码方式是伪代码,但是不难看出代码的设计显然不合理,再加一个同样可以用来传输数据的手机或者相机类,那么电脑上又要添加更多方法了,如何更改并优化这种设计方式呢?
如果使用继承,然后使用方法重写,利用参数类型实现多态来优化这段代码,那么必须提供一个父类,很显然这几个类没有特别明显的继承、包含之类的关系,也就是说父类很难找到,没有通用性。那么是否可以把这个传送数据的方法作为一个单独的、统一的、独立的功能作为某种规范定义出来呢?答案是可以的,这个统一功能的定义即所谓的接口,可以用来代替以上实现传输数据的统一标准手段:
public interface USB { //使用interface 定义接口
public void service();
}
- 由此可以知道接口实际上就是一种规范,接口没有任何具体实现,只是记录了一些规定,而任何符合了这些规定或者说实现了这些规定的对象都可以看做这种接口的实现,可以用来做某类事情。