现在的位置: 首页 > 综合 > 正文

Java基础复习:接口

2014年08月22日 ⁄ 综合 ⁄ 共 1052字 ⁄ 字号 评论关闭

抽象类是从多个类中抽象出来的模版,若要将这种抽象进行的更为彻底,就得用到一种特殊的“抽象类”——接口。

接口只定义了类应当遵循的规范,却不关心这些类的内部数据和其方法内的实现细节。

接口只规定了这些类里必须提供的方法;从而分离了规范和实现.增强了系统的可拓展性和维护性;

[修饰符] interface 接口名 extends 父接口1,父接口2....
没有构造方法,不能实例化;
接口只能继承接口,不能继承类
接口里的方法默认修饰符是public abstract
接口里的字段全是全局常量,默认修饰符是public static final
接口里的成员包括(主要是前两个)
全局常量
公共的抽象方法
内部类(包括内部类,内部接口,内部枚举类);
使用接口
[修饰符] class 类名 implements 接口1,接口2...

一般的我们习惯在接口名前加上I字母,用于区分类和接口;

package day3;

/**
 * USB标准
 * @author well
 *
 */
interface IUSB{
	/**
	 * 接口中的方法,其实现类必须进行覆写
	 */
	void run();
}

/**
 * 使用USB标准的鼠标设备
 * @author well
 *
 */
class MouseUSBImpl implements IUSB{
	@Override
	public void run() {
		System.out.println("Mouse is working");
	}
}

/**
 * 使用USB标准的打印机设备
 * @author well
 *
 */
class PrinterUSBImpl implements IUSB{
	@Override
	public void run() {
		System.out.println("Printer is working");
	}
}

/**
 * PC类,用于统一运行USB设备
 * @author well
 *
 */
class PC{
	/**
	 * 将USB设备插入PC中,使用可变参数实现将多个USB设备插入PC中
	 * @param m USB设备列表
	 */
	public void plugIn(IUSB ... m){
		for (int i = 0; i < m.length; i++) {
			m[i].run();
		}
	}
}

public class InterfaceDemo {
	public static void main(String[] args) {
		IUSB a = new MouseUSBImpl();
		IUSB b = new PrinterUSBImpl();
		PC p = new PC();
		p.plugIn(a,b);
	}
}

打印结果为:

Mouse is working

Printer is working

【上篇】
【下篇】

抱歉!评论已关闭.