Java的接口快速入门
基本介绍:
接口就是给出一些没有实现的方法,封装到一起,到某个类需要使用的时候,再根据具体情况把这些方法写出来,语法:
interface 接口名{
//属性
//方法(1.抽象方法,2.默认实现方法.3.静态方法)
}
class 类名 implements 接口{ //implements译为实现
自己属性;
自己方法;
必须实现的接口的抽象方法;
}
快速入门案例:
接口:
package com.Interface_;public interface USBInterface {//接口//规定 接口的相关方法有哪些public void start();public void stop();
}
Phone和Camara类:
package com.Interface_;//Phone类 实现USBInterface
//即Phone类需要实现USBInterface声明的方法
public class Phone implements USBInterface{@Overridepublic void start() {System.out.println("手机开始工作");}@Overridepublic void stop() {System.out.println("手机停止工作");}
}
package com.Interface_;public class Camara implements USBInterface{//实现接口,本质就是把接口的方法实现@Overridepublic void start() {System.out.println("相机开始工作");}@Overridepublic void stop() {System.out.println("相机停止工作");}
}
computer类:
package com.Interface_;public class Computer {//编写一个方法,计算机工作public void work(USBInterface usbInterface){//通过接口来调用方法usbInterface.start();usbInterface.stop();}
}
使用:
package com.Interface_;public class Interface01 {public static void main(String[] args) {//创建手机,相机对象Camara camara = new Camara();Phone phone = new Phone();//创建计算机Computer computer = new Computer();computer.work(phone);//把手机接入到计算机computer.work(camara);//把相机接入到计算机}
}
小结:
在JDK7.0前,接口里的所有方法都没有方法体,即都是抽象方法
JDK8.0后接口类可以有静态方法,默认方法,也就是说接口中可以有方法的具体实现
package com.Interface_;public class Interface02 {public static void main(String[] args) {}
}
interface Inter01{//可以写属性public int n1 = 10;//也可以写方法public void hi();//在接口中,抽象方法可以省略abstract关键字//在JDK8以后,可以有默认实现方法,但必须使用defalut关键字修饰default public void OJBK(){System.out.println("ok");}//在JDK8以后,可以有静态方法public static void cry(){System.out.println("cry...");}
}//如果一个类 implements了一个接口,需要将该接口的所有抽象方法都实现
class A implements Inter01{@Overridepublic void hi() {System.out.println("泥嚎...");}
}
接口的注意事项和细节:
1)接口不能被实例化
2)接口中所有的方法是public方法,接口中抽象方法,可以不用abstract修饰

3)一个普通类实现接口,就必须将该接口的所有方法都实现
4)抽象类实现接口,可以不用实现接口的方法
5)一个类同时可以实现多个接口
6)接口中的属性,只能是final的,而且是public static final修饰符.
比如:int a = 1,实际上是public static final int a = 1;(必须初始化)
7)接口中属性的访问形式: 接口名.属性名
8)接口不能继承其他的类,但是可以继承多个别的接口
9)接口的修饰符只能是public 和 默认 这点和类的修饰符是一样的
package com.Interface_;public class InterfaceDetail {public static void main(String[] args) {}
}//一个类同时可以实现多个接口,要将接口的方法全部实现
interface IB {int n1 = 10;//等价于public static final int n1 = 10;void hi();
}
interface IC{void say();
}
class Pig implements IB,IC{@Overridepublic void hi() {}@Overridepublic void say() {}
}//接口不能继承其他的类,但是可以继承多个别的接口
interface ID extends IB,IC{//可以继承别的接口}
//interface ID extends Pig{ 接口不能继承类
//}