目录
一.接口
1.接口的概念
- 接口在编程中是一种抽象类型,用于定义行为规范。
- 它仅包含方法签名(名称、参数、返回类型),不包含具体实现。实现接口的类必须提供接口中所有方法的具体逻辑。
2.接口的核心作用
- 标准化行为:多个类可共享同一套方法规范,确保一致性。
- 解耦:分离定义与实现,降低代码依赖性。
- 多态支持:通过接口类型引用不同实现类,灵活扩展功能。
3.语法规则
接口的 定义格式 与定义类的格式基本相同,将 class 关键字 换成 interface 关键字
public interface ITest1 {
public abstract void method1();
//public abstract 是固定搭配,写与不写是一样的
public void method2();
abstract void method3();
void method4();
}
提示:
- 接口创建时,接口命名一般以大写字母 I 开头
- 接口的命名一般使用 形容词 词性的单词
- 一般情况下 接口中的 方法和属性 不要加 任何形式的修饰符号 ,以保持代码简洁性
4.接口的使用
public interface USB {
void openDevice();
void closeDevice();
}
public class Mouse implements USB{
@Override
public void openDevice(){
System.out.println("打开鼠标");
}
@Override
public void closeDevice() {
System.out.println("关闭鼠标");
}
public void click(){
System.out.println("鼠标点击");
}
}
public class KeyBoard implements USB{
@Override
public void openDevice() {
System.out.println("打开键盘");
}
@Override
public void closeDevice() {
System.out.println("关闭键盘");
}
public void inPut(){
System.out.println("键盘输入");
}
}
public class Computer {
public void open(){
System.out.println("开机");
}
public void close(){
System.out.println("关机");
}
public void uesUsbDevice(USB usb){
usb.openDevice();
if(usb instanceof Mouse){
Mouse mouse = (Mouse) usb;
mouse.click();
}else{
KeyBoard keyBoard = (KeyBoard) usb;
keyBoard.inPut();
}
usb.closeDevice();
}
}
public class TestDevice {
public static void main(String[] args) {
Computer computer = new Computer();
computer.open();
computer.uesUsbDevice(new Mouse()); //使用鼠标设备
computer.uesUsbDevice(new KeyBoard()); //使用键盘设备
computer.close();
}
}
运行:
5.接口的特性
①接口类型是一种引用类型,但是不能直接 new接口的对象
②接口当中的成员变量,默认是 public static final 修饰的
③接口中当中的方法 一般情况下是 抽象方法,默认都是public abstract修饰的
④在 jdk8+ 中:接口还可以包含 default方法
如果接口当中的方法被 default修饰,那么该方法可以有具体实现
⑤如果接口当中的方法被 static 修饰,那么也可以有具体实现
⑥重写接口方法时,不能 使用默认的访问权限
⑦接口中不能有 静态代码块 和 构造代码块
⑧如果一个类 不想实现这个接口当中的方法,那么此时这个类 就可以 被定义为抽象类
如果这个抽象类 被继承 ,那么 就得实现 所有未被实现的方法
⑨接口虽然不是类,但是接口编译完成后 的字节码文件 的后缀是 .class