Java接口知识点总结
- 一、接口是什么?
- 二、接口的使用
- 二、接口中的方法
- 1.抽象方法
- 2.默认方法
- 2.1 默认方法定义
- 2.2 默认方法使用
- 3.静态方法
- 3.1 静态方法定义
- 3.2 静态方法使用
- 4.私有方法
- 5.常量
- 5.1 常量的定义
- 5.2 常量的使用
- 总结
一、接口是什么?
接口:是多个类的公共使用规范
接口是一种引用类型
不同版本的Java,所包含的内容不太一样,版本越高,包含的内容越全面
Java 7中接口包含:
1.常量
2.抽象方法
Java 8中接口在Java 7的基础上增加了:
1.默认方法
2.静态方法
Java 9中接口在Java 8的基础上增加了:
1.私有方法
因此Java9以上的版本,至少包含:
1.常量
2.抽象方法
3.默认方法
4.静态方法
5.私有方法
二、接口的使用
接口的使用:
1.接口不能直接使用,必须使用一个实现类来实现接口 格式:public class 实现类名称 implements 接口名称{}
2.接口实现类必须重写接口中所有抽象方法
3.通过实现类对象的创建进行使用,不能new接口来进行使用
注意:如果实现类没有重写接口的全部抽象方法,那它必须是抽象类 代码如下
public class Demo01Interface implements Interface{
@Override
public void say1() {
// TODO Auto-generated method stub
System.out.println("实现第一个抽象方法");
}
@Override
public void say2() {
// TODO Auto-generated method stub
System.out.println("实现第二个抽象方法");
}
}
二、接口中的方法
1.抽象方法
接口中抽象方法:只有方法声明,没有方法体;
定义格式:
public abstract 返回值类型 方法名称(参数列表);//没有花括号和方法体
注意事项:
1.接口中的抽象方法是固定的两个关键字,public abstract(即使不写,默认也是这两个关键字)
2.两个关键字可以选择性的省略,不影响使用
3.方法的返回值类型、方法名称、参数列表可以随意定义
public interface InterfaceAbstract {
//这是一个标准抽象方法
public abstract String say(String name);
//省略abstract,这仍是一个抽象方法
public String say1();
//省略public关键字,这还是一个抽象方法
abstract String say2();
//省略两个关键字,这还是一个抽象方法
String say3();
}
2.默认方法
2.1 默认方法定义
默认方法:Java8增加的方法
格式: public default 返回值类型 方法名称(参数列表){方法体}
注意事项:
1.默认方法是为了解决接口升级的问题(有时候需要对正在使用的接口进行增加新的方法,但是增加方法会使得实现类需要修改代码,如果实现类数量较多,会使得工作量较大,默认方法可以解决此问题)
2.接口的默认方法通过实现类对象,进行直接调用
3.接口的实现类可以覆盖重写默认方法
4.关键字public可以选择性省略,但是default关键字必须写
public interface InterfaceDefault {
//这是一个默认方法
public default void defaultMethod(){
System.out.println("默认方法");
}
default void defaultMethod1(){
System.out.println("默认方法1");
}
}
2.2 默认方法使用
//默认方法使用格式:
// 实现类对象.方法名
public class InterfaceDefaultUse {
public static void main(String[] args) {
InterfaceDefaultImplement interfacedefault = new InterfaceDefaultImplement();//InterfaceDefaultImplement为默认方法实现类
interfacedefault.defaultMethod();
interfacedefault.defaultMethod1();
3.静态方法
3.1 静态方法定义
静态方法:Java 8中新增加的方法
格式: public static 返回值类型 方法名称(参数列表){方法体}
注意事项:
1.不能通过接口的实现类对象来调用静态方法,通过接口名称直接调用静态方法
2.关键字public可以选择性省略,但是static关键字必须写.
public interface InterfaceStatic {
public static void methodStatic(){
System.out.println("这是一个静态方法");
}
static void methodStatic1(){
System.out.println("这也是一个静态方法");
}
}
3.2 静态方法使用
//调用静态方法格式:
// 接口名.方法名
public class InterfaceStaticUse {
public static void main(String[] args) {
InterfaceStatic.methodStatic();
}
}
4.私有方法
私有方法:Java 9中新增加的方法,解决了默认方法间的代码重复问题,实现类不能访问
1.普通私有方法:解决多个默认方法之间重复代码问题
格式:private 返回值类型 方法名称(参数列表){方法体}
2.静态私有方法:解决多个静态方法之间重复代码问题
格式:private static 返回值类型 方法名称(参数列表){方法体}
public interface InterfacePrivate {
public default void say1(){
System.out.println("默认方法1");
//System.out.println("重复内容1");
//System.out.println("重复内容2");
//System.out.println("重复内容3");
say3();
}
public default void say2(){
//System.out.println("默认方法2");
//System.out.println("重复内容1");
//System.out.println("重复内容2");
//System.out.println("重复内容3");
say3();
}
private void say3(){
System.out.println("重复内容1");
System.out.println("重复内容2");
System.out.println("重复内容3");
}
}
5.常量
5.1 常量的定义
常量:在使用过程中,值不会发生改变的量
格式: public static final 数据类型 常量名 = 常量值
注意事项:
1.接口中的常量在定义的时候必须进行赋值
2.接口中的常量在使用过程中值不能够发生改变
3.接口中定义常量时可以省略public static final不写,但是效果不变
4.接口中的常量的名称使用完全大写字母,如有多个单词组成,使用下划线进行分割 (方便区分)
public interface InterfaceFinal {
public static final int NUM = 10;//一旦使用final进行修饰,值不可改变
int NUM1 = 6;//虽然没有public static final,仍为常量,值依旧不可以改变
}
5.2 常量的使用
//接口的常量使用格式:
// 接口名称.常量名
public class Demo02InterfaceFinalUse {
public static void main(String[] args) {
System.out.println(InterfaceFinal.NUM);
}
}
总结
本篇文章讲解了Java接口中的相关知识,接口中主要包括抽象方法和常量,版本越高包含的内容也越广,希望可以给您提供帮助,如有不足,敬请指正!