一、接口
1、接口是什么?
接口是数据传递的通道。
我的理解:接口可以理解为一种特殊的类,里面全部是由全局常量和公共的抽象方法所组成。
即:接口就是一个由全局常量和抽象方法组成的类,反过来讲:将一些抽象方法和必要的全局常量打包成一个类,这个类就是接口
2、接口的创建
interface 接口名{
接口的体;//包括抽象方法1.。。
}
- package interface01;
-
- interface Usb{ //创建接口(接口本质上就是一个特殊的类)
- public void start();
- public void stop();
- }
-
3、接口的使用
class 类名 implements 接口名(列表) {
类的体;\\包括抽象方法1的实现。。。
}
(1)、接口的实现
- package interface01;
-
- class Camera implements Usb{//接口的实现类似于抽象类的实现
- @Override
- public void start(){
- System.out.println("我是相机,开始工作了!!");
- }
- @Override
- public void stop(){
- System.out.println("我是相机,停止工作了!!");
- }
- }
(2)、接口的调用
- package interface01;
-
- class Computer { //在类中创建一个调用接口的方法
- public void working(Usb usb){
- usb.start();
- usb.stop();
- }
- }
- package interface01;
-
- public class Interf1 {
- public static void main(String[] args) {//创建手机,相机对象
- Camera camera = new Camera();
- Phone phone = new Phone();
- //创建计算机
- Computer computer = new Computer();
- computer.working(phone);
- computer.working(camera);
- }
- }
4、接口中有什么?
java8以后,接口的体中可以有静态方法或者默认方法
(可以说java8作为第一个长期支持版本,很多东西都是在java8确定下来的。不知道就填java8)
5、接口中的抽象方法
(1)、接口不能被实例化,但接口中的方法可以
(2)、接口中的抽象方法可以省略abstract;所有的方法都要用public修饰
6、接口的实现
抽象类实现接口时,可以不全部实现接口的所有方法;
普通类实现接口时,必须全部实现接口的所有方法。
注:这点可以联系之前关于抽象类中方法的实现来理解
7、接口中的属性
类型:只能是 public static final属性(常量):只是被省略了。
被调用:接口名。属性名
8、接口的继承(之前曾经说过java是单继承机制,但接口的继承不是继承(确信))
接口是多继承机制,可以继承多个接口
9、接口也有修饰符,修饰符同类
10、接口的多态特征
(1)、接口参数的多态
实现了接口的类可以当成接口的子类使用
(2)、接口的多态数组
(3)、接口的多态传递
接口类型的变量可以指向实现了该接口的类的对象实例