0
点赞
收藏
分享

微信扫一扫

JAVA接口解析


定义:

接口:就是一种公共的规范标准。只要符合规范标准,就可以通用。

以生活中的接口举例:

  • 电源插座接口
  • USB接口

格式:

package com.zhuhuix.startup.test;

/**
* 格式:public interface 接口名称{
* //接口内容
* }
*
* 如果是java 7 ,接口中可以包含的内容有:
* 1、常量
* 2、抽象方法
*
* 如果是java 8 ,还可以额外包含有:
* 3、默认方法
* 4、静态方法
*
* 如果是java 9,还可以额外包含有:
* 5、私有方法
*/
public interface DemoInterface {
//TODO
}

接口中的抽象方法与实现:

接口实现类必须覆盖重写接口中的所有抽象方法。

public interface DemoInterface {

//抽象方法:public abstract两个关键字可以省略
public abstract void method1();

//抽象方法
void method2();
}

package com.zhuhuix.startup.test;

/**
* 接口不能直接使用,必须有一个实现类来实现该接口
* 格式:
* public class 实现类名称 implements 接口名称{
* //....
* }
*/
public class DemoInterfaceImpl implements DemoInterface{

@Override
public void method1() {
System.out.println("这是接口DEMO中的第一个实现方法");
}

@Override
public void method2() {
System.out.println("这是接口DEMO中的第二个实现方法");
}
}

接口中的默认方法:

接口中的默认方法,可以直接调用,也可以被接口的实现类覆盖重写

package com.zhuhuix.startup.test;

/**
* 接口默认方法可以解决接口升级的问题
* 格式:
* public default 返回值类型 方法名称(参数){
* //...
* }
*/
public interface DemoInterfaceDefault{

//抽象方法
void method();

//默认方法
default void methodDefault(){
System.out.println("这是一个默认方法,在接口中新增后不影响原有接口的实现类,但原有的实现类也可以重写默认方法");
}
}

package com.zhuhuix.startup.test;

public class DemoInterfaceDefaultImpl implements DemoInterfaceDefault{
@Override
public void method() {
System.out.println("实现抽象方法");
}
}

接口中的静态方法:

package com.zhuhuix.startup.test;

/**
* 接口静态方法格式:
* public static 返回值类型 方法名称(参数){
* //...
* }
*/
public interface DemoInterfaceStatic {

//静态方法:不能通过接口实现类的对象来调用接口当中的静态方法
//只能通过接口名称,直接调用其中的静态方法
static void method(){
System.out.println("这是一个静态方法");
}

}

 接口中的常量:

package com.zhuhuix.startup.test;

/**
* 接口中可以定义常量
* 必须使用public static final三个关键字修饰,且必须进行赋值
* 常量名称用完全大写字母,用下划线进行分隔
* 格式:
* public static final 数据类型 常量名称=值
*/
public interface DemoInterfaceConst {

//常量:public static final可以省略
public static final String INTERFACE_CONST="Const";
}

总结:

  1. 接口中的成品变量其实就是常量:常量必须进行赋值,而且一旦赋值不能改变;常量名称需完全大写,用下划线进行分隔。
  2. 接口中最重要的就是抽象方法:实现类必须覆盖重写接口所有的抽象方法,除非实现类是抽象类。
  3. 从Java 8开始,接口里允许定义默认方法:默认方法也可以被覆盖重写;接口里允许定义静态方法:静态方法应通过接口名称进行调用,不能通过实现类对象调用接口静态方法。
  4. 从Java 9开始,接口里允许定义默认私有方法或静态私有方法:私有方法只有接口自己才能调用,不能被实现类调用。
举报

相关推荐

0 条评论