Java接口

243 阅读2分钟

JAVA接口

1.什么是接口

接口在java编程语言中是一种抽象的类型,是抽象方法的集合,接口主要用interface来声明,一个类通过继承接口的方式,从而来继承接口的抽象方法。接口不是类,它只包含类要实现的方法。如果实现某个接口的类是抽象类,那么这个类要定义接口中所有的方法。接口无法被实例化,但是可以被实现,一个实现接口的类,必须实现接口内所描述的所有方法,否则必须声明为抽象类。

2.接口与类之间的关系

1.类与类之间:继承关系,只能是单继承,可以多层继承。
2.类与接口之间的关系:实现关系,可以单实现,也可以多实现。并且还继承一个类的 同时实现多个接口。
3.接口与接口之间的关系:继承关系,可以单继承,也可以多继承。

3.接口的特性

1.接口不可以被实例化
2.实现类必须实现接口的所有方法
3.实现类可以实现多个接口
4.接口中的变量都是静态常量

4.接口的优点

1.因为继承的实现原理决定了他只能被单继承,但是可以多重继承,但是如果出现某些内容在多个父类当中,这样修改起来相当麻烦。使用接口,可以做到立刻实现,立刻使用。不需要实现时,直接移除此接口就可以了。非常的方便。
2.父类引用指向子类对象
3.更容易实现搭建程序的框架
4.更容易实现切换

5.接口与抽象类之间的相同点与不同点
相同点:
1.都是代表系统的抽象层
2.都不能被实例化
3.都能包含抽象方法
不同点:
1.在抽象类中可以为部分方法提供默认实现,而接口中只能包含抽象方法,抽象类便于复用,接口便于代码维护
2.一个类只能继承一个直接的父类,但可以实现多个接口

6.接口代码实例

实例1

public class Security extends Door implements CatEye, Fireproofing {

	@Override
	public void openCat() {
		System.out.println("打开猫眼");

	}

	@Override
	public void closeCat() {
		// TODO Auto-generated method stub
		System.out.println("关闭猫眼");
	}

	@Override
	public void fireproofing() {
		// TODO Auto-generated method stub

	}

	@Override
	public void noFireproofing() {
		// TODO Auto-generated method stub

	}

}

实例2

/**
 * 计算机类
 * 
 * @author Administrator
 *
 */
public class CP {
	private Cpu cpu;

	public Cpu getCpu() {
		return cpu;
	}

	public void setCpu(Cpu cpu) {
		this.cpu = cpu;
	}

	public EMS getEms() {
		return ems;
	}

	public void setEms(EMS ems) {
		this.ems = ems;
	}

	public HardDisk getHardDisk() {
		return hardDisk;
	}

	public void setHardDisk(HardDisk hardDisk) {
		this.hardDisk = hardDisk;
	}

	private EMS ems;
	private HardDisk hardDisk;

	public CP(Cpu cpu, EMS ems, HardDisk hardDisk) {
		super();
		this.cpu = cpu;
		this.ems = ems;
		this.hardDisk = hardDisk;
	}

	public CP() {
		super();
		// TODO Auto-generated constructor stub
	}

	public void show() {
		System.out.println("电脑的cpu是:" + getCpu().getCpuBrand() + "主频是:" + getCpu().getFrequency());
		System.out.println("硬盘容量是:" + getHardDisk().getHardDisk());
		System.out.println("内存的容量是:" + getEms().getEms());
	}
}