接口
接口的概念
- 接口就是公共的行为规范标准,只要符合规范标准,就可以通用。在Java中,接口可以看成是:多个类的公共规范,是一种引用数据类型。简单来说就是一种标准,如生活中的排插、手机、电脑的USB接口等
语法规则
- 接口定义语法:public + interface + 接口名 + {}
//接口1
public interface ITest {
}
//接口2
interface TTest2 {
}
接口的使用
- 接口不能直接使用,需要其它类来帮它实现,它只是提供了一个抽象的方法(公共标准),继承接口必须实现接口内的所有抽象方法。
package test12;
//接口
public interface ITest {
void ste();//抽象方法(标准)
void soa();//抽象方法(标准)
}
//继承接口的实现类
public class Test12 implements ITest{
@Override//重写抽口的方法
public void ste() {
}
@Override//重写抽口的方法
public void soa() {
}
}
- 继承接口的实现类语法:访问修饰 + class + 类名 + implements + 接口名 + {}

接口的特性
public static void main(String[] args) {
ITest iTest = new ITest() ;//直接new报错了
}
- 接口中的方法默认是public abstract,也只能是public abstract修饰的



- 接口可以有变量存在,但是变量默认是被public staticf inal 修饰的

多接口
- Java中继承只能由一个,但是接口可以由多个,可以达到多继承的效果


接口之间的继承
//接口的继承使用关键字extends来继承
public interface ITest2 extends ITest{
void grs();
void ery();
}

接口的使用案例
public interface ITest {
void openDevice();//打开行为
void closeDevice();//关闭行为
}
public class Display implements ITest{
@Override
public void openDevice() {
System.out.println("打开显示器");
}
@Override
public void closeDevice() {
System.out.println("关闭显示器");
}
public void testDevice(ITest iTest) {
iTest.openDevice();
if(iTest instanceof Mouse) {
Mouse mouse = (Mouse) iTest;
mouse.click();
}else if(iTest instanceof KeyBoard){
KeyBoard keyBoard = (KeyBoard) iTest;
keyBoard.click();
}
iTest.closeDevice();
}
public static void main(String[] args) {
Display display = new Display();
display.openDevice();
display.testDevice(new Mouse());
display.testDevice(new KeyBoard());
display.closeDevice();
}
}
public class KeyBoard implements ITest{
public KeyBoard() {
super();
}
@Override
public void openDevice() {
System.out.println("打开键盘");
}
@Override
public void closeDevice() {
System.out.println("关闭键盘");
}
public void click() {
System.out.println("敲击键盘");
}
}
public class Mouse implements ITest{
@Override
public void openDevice() {
System.out.println("打开鼠标");
}
@Override
public void closeDevice() {
System.out.println("关闭鼠标");
}
public void click() {
System.out.println("点击鼠标");
}
}
接口和抽象类的区别
- 主要区别:在抽象类可以存在普通方法、普通成员,子类就不需要重写这些方法,而在接口中,则不存在普通成员,全是抽象方法,继承接口必须重写抽象方法。
