共计 1705 个字符,预计需要花费 5 分钟才能阅读完成。
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());
}
}