接口的基本介绍
现实接口与软件接口的区别
- 现实生活中的接口在电脑中的USB 它可以连接设备 然后让电脑与设备之间进行某些特定操作
- 而软件上的接口可以认为是这样一个过程
首先创建一台电脑 一个接口 多个设备 在接口中编写方法(可以不用给出方法体) 然后让设备实现接口连接同时进行方法重写 最后在主方法中调用实现 电脑操作接口与设备互动
- 接口的定义:就是把一些没有实现的方法封装到一起,当某个类要使用的时候,再根据具体情况把该方法重写
使用接口的注意事项
- jdk7.0中的接口都没有方法体,都是抽象方法
- jdk8.0后接口可以有静态的方法(public 后面加 static),默认方法(最前面加default),也就是接口中有方法的具体实现
- 如果一个类实现implements了接口就必须把该接口的抽象类都实现
public interface Ainterface {
//可以定义属性
int a1=10;
//在jdk7中抽象方法abstract 被省略
public void hi();
//jdk8后就可以有默认的实现方法 但需要关键字default
default public void hihi(){
System.out.println("你好");
}
//jdk8后可以使用静态的方法
public static void hihihi(){
System.out.println("你好");
}
}
class A implements Ainterface{
//如果一个类实现了接口就必须把该接口的抽象类都实现
public void hi(){
System.out.println("nihao");
}
}
-
接口不能被实例化
-
接口中的方法是public方法 接口中的抽象方法 可以不用abstract修饰
-
若一个类连接接口 则必须实现原来接口的所有方法 如果是抽象类连接接口 则可以不用实现接口方法(跟抽象类继承的性质类似)
-
一个类可以同时实现多个接口
abstract class interface03 implements Ainterface,Usbintereface{
//Ainterface,Usbintereface都是接口
..........
}
- 接口中的属性的 修饰符与关键字是public static final;比如: int a = 1;实际上是 public static final int a = 10;公开静态不可修改
public interface Ainterface {
int a1=10;
}
public class Interface02 {
public static void main(String[] args) {
System.out.println(interface03.a1); 调用方法是直接用接口名.属性 它是static类
interface03.a1 = 100;//报错 final属性不能修改
}
}
class interface03 implements Ainterface{//只能去实现接口 不能实例化
}
- 接口属性的访问形式是 接口名.属性名
- 一个接口不能继承其他类 但是可以继承多个接口
//Usbintereface接口 被 Ainterfac接口继承 接口的继承用implements
public interface Ainterface implements Usbintereface{
}
- 接口的修饰符只能是默认或者public ,这一点和类的修饰符相同
使用接口的一个实际例子
情景 如果公式要求3个人写不同编程语言的程序启动和关闭代码:但是每个人的命名风格 不方便一个公司的工作
所以就需要一个接口来统一命名 再让3个人分别去连接接口 然后开始编写代码 因此方便公司使用