接口是Java中定义程序的功能一种类型。在接口中只定义抽象方法和常量,接口是面向功能的,是没有实例的,只有类实现接口,才有意义。
一个类实现了某个接口,就意谓着该类的对象具有接口描述的功能,所以从另外一个方面说,接口是对具有某引起功能的类的规范。
与抽象类不同的是类是面向数据的,子类继承父类,说明子类和父类具有相同数据特征。一个子类只继承一个父类却可实现多个接口。子类实现接口后和继承抽象类方法一样,要么实现接口定义的全部抽象方法,要么部分实现或未实现接口中的抽象方法成为一个抽象类。
定义抽象的关键字是interface,定义常量的public final static是可选的,定义抽象的public abstract也是可选,即使没有显式添加编译时会加上。
*
abstractinterfaceSwitchAble {
intSTATE_OPENED=0;
intSTATE_CLOED=0;
publicvoidclose();
publicvoidopen();
}
classTVimplementsSwitchAble{
@Override
publicvoidclose() {
System.out.println("电视关闭了");
}
@Override
publicvoidopen() {
System.out.println("电视打开了");
}
}
classFanimplementsSwitchAble{
@Override
publicvoidclose() {
System.out.println("电风扇关闭了");
}
@Override
publicvoidopen() {
System.out.println("电风扇打开了");
}
}
publicclassDemo1 {
publicstaticvoidmain(String[]args) {
TVtv=newTV();
Fanfan=newFan();
tv.open();
fan.open();
tv.close();
fan.close();
}
}
运行程序,结果如下图所示: