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接口中的相关知识,接口中主要包括抽象方法和常量,版本越高包含的内容也越广,希望可以给您提供帮助,如有不足,敬请指正!