一、接口基础知识
1.什么是接口
在生活中,接口是一套规范,只要满足这个规范的设备,就可以将他们组装在一起,从而实现该设备的功能。
2.接口的语法
【修饰符】 interface 接口名 extend 父接口1,父接口2,........{
//常量定义
//方法定义
}
class 类名 extends 父类名 implements 接口1,接口2,.......{
//类成员
}
接口的命名规则与类相同,接口中可以定义常量,不能定义变量。接口中的属性都会自动用 public static final 修饰,属于接口的属性都是全局静态常量。接口在定义时必须指定初始值
public static final int PI=3.14;
int PI=3.14; //在接口中这两条语句效果完全一样
int PI; //错误 在接口中必须有指定初始值,在类中会有默认值
接口中的方法都是抽象方法 。接口中的方法都会自动用public abstract 修饰,接口中只有全局抽象方法。
和抽象类一样,接口也不能实例化,接口中不能有构造方法。
接口可以通过extend 实现继承关系,一个接口可以继承多个接口,但接口不能继承类。
接口的实现方法必须实现接口的全部方法, 否则必须定义为抽象类。
小结:
一个类只能有一个直接父类,但可以通过implements 实现多个接口。但类在继承父类的同时又实现了多个接口时,extends 关键字必须位于 implements 关键字之前。
接口表示一种约定,表示一种能力,接口体现了约定和现实相分离的原则
二、接口表示一种能力
public interface Lock {//定义接口
//接口方法
void lockUp();//上锁
void openLock();//开锁
}
public interface tackepictures {
void mennin();//定义一个接口的门铃方法
}
public abstract class Door {
//定义一个抽象类门
public abstract void open();//抽象开门方法
public abstract void clopen();//抽象关门方法
}
public class TheftProofDoor extends Door implements Lock,tackepictures{
public void clopen() {
System.out.println("关门");
lockUp();//上锁
}
public void open() {
openLock();//开锁
System.out.println("开门");
}
public void lockUp() {
System.out.println("上锁");
}
public void openLock() {
System.out.println("开锁");
}
public void mennin(){
System.out.println("门铃响了 ==卡擦==拍照上传中 ");
}
}
public class Testo4 {
public static void main(String[] args) {
TheftProofDoor door=new TheftProofDoor();
door.mennin();
door.open();
//关门
door.clopen();
}
}
运行结果:
门铃响了 ==卡擦==拍照上传中
开锁
开门
关门
上锁