概念:
接口就是给出一些没有内容的方法,封装到一起,到某个类要使用的时候,再根据具体情况把这些方法写出来。
语法:
class 类名 implement 接口名1,接口名2 {
方法;
变量;
}
代码:
/*
* 接口demo
*/
class Computer {
public void useUsb(Usb usb) {
usb.start();
usb.stop();
}
}
public class Demo1 {
public static void main(String[] args) {
Computer computer = new Computer();
Camera camera = new Camera();
Phone phone = new Phone();
computer.useUsb(camera);
computer.useUsb(phone);
}
}
// 接口Usb,所有方法都不能实现,完全抽象
interface Usb {
int a = 1; // 接口变量必须初始化
public void start();
public void stop();
}
// 必须实现接口的所有方法
class Camera implements Usb {
public void start() {
System.out.println("camera begins working");
}
public void stop() {
System.out.println("camera stops");
}
}
class Phone implements Usb {
public void start() {
System.out.println("phone begins working");
}
public void stop() {
System.out.println("phone stops");
}
}
运行输出:
camera begins working
camera stops
phone begins working
phone stops
注意:
1. 接口不能被实例化;
2. 接口中所有方法都不能被实现;
3. 一个类可以实现多个接口;
4. 接口中可以有变量【但变量不能用private和protected修饰】;
a. 接口中的变量,本质上都是static的,而且是final类型的,不管加不加static修饰;
b. 在java开发中,我们经常把经常用到的变量,定义在接口中,作为全局变量使用。
访问形式:接口名.变量名
5. 一个接口不能继承其它的类,但是可以继承别的接口。
PS:接口是更加抽象的抽象类(完全抽象),体现了程序设计的多态和高内聚低耦合的设计思想。