接口
1.概念
- 接口,是Java中一种引用类型,是方法的集合。
- 接口内部主要是封装了方法,包括抽象方法、默认方法和静态方法、私有方法。
- 定义接口,要使用interface关键字,它也会编译成class文件,但一定要明确它并不是类,是一种引用数据类型。
- 接口不能实例化。
注意:
- 接口中静态方法只能使用接口名调用,不可以通过实现类的类名或者实现的对象调用。
- 接口中抽象方法必须全部实现。
- 接口中默认方法可以继承,也可以重写,但是只能用实现类的对象来调用
//调用接口,必须实现接口的抽象方法。
class Mouse implements Usb{
@Override
public void start(){
System.out.println("鼠标开始运行。");
}
@Override
public void stop(){
System.out.println("鼠标结束运行。");
}
//可以重写Usb中的默认方法
@Override
public void method1(){
System.out.printl("鼠标的默认方法");
}
}
//定义接口
public interface Usb{
//静态的常量
public static final String s = "静态常量";
public abstract void start();
public abstract void stop();
//默认方法
public default void method1(){
//执行代码
System.out.println("默认方法");
}
//静态方法
public static void method2(){
System.out.println("j静态方法");
}
}
//调用接口方法
public class TestUsb{
Usb mouse = new Mouse();
mouse.start();
mouse.stop();
//调用默认方法
mouse.method1();
//调用静态方法
Usb.method2();
}
2.接口定义
含有抽象方法
使用abstract关键字,没有方法体。
public interface jiekou{
public abstract void method();
}
含有默认方法和静态方法
默认方法:使用default关键字,不可以省略,供子类调用或者子类重写。
静态方法:使用static关键字,供接口直接调用。
public interface InterFaceName{
public default void method1(){
//执行代码
System.out.println("默认方法");
}
public static void method2(){
//执行代码
System.out.println("静态方法");
}
}
私有方法
使用private关键字,供接口中的默认方法或者静态方法调用。
public interface InterFaceName{
private void fun(){
System.out.println("私用方法");
}
}
3.接口和抽象类的区别
- 子类和抽象父类用extends关键字。
- 实现类和接口用implements关键字。
4.非抽象子实现接口
- 必须重写接口中所以抽象方法。
- 继承了接口的默认方法,即可以直接调用,也可以重写。