您的位置:首页 > 文旅 > 旅游 > 接口与实现-常用实用类-Java

接口与实现-常用实用类-Java

2024/10/7 2:22:32 来源:https://blog.csdn.net/axzy5863/article/details/139082815  浏览:    关键词:接口与实现-常用实用类-Java

接口与实现

接口

使用关键字interface来定义一个接口,接口的定义分为接口声明和接口体,例如:
interface Com{

.......

}

接口声明

interface 接口的名字

接口体

接口体中的抽象方法和常量

接口体中所有抽象方法的访问权限一定都是public,而且允许省略抽象方法的public和abstract修饰符,接口体中所有static常量的访问权限一定都是public,而且允许省略public,final和static修饰符,因此,接口体中不会有变量

interface Com{public static final int MAX=100;    //等价写法public abstract void add();     //等价写法,void add();public abstract float sum(float x,float y); //等价写法,float sum(float x,float y);
}

接口体中的default实例方法

从JDK8版本开始,允许使用default关键字、在接口体中定义称作default的实例方法(不可以定义defult的static方法),default的实例方法和通常的实例方法相比就是使用关键字defult修饰的带方法体的实例方法。default实例方法的访问权限必须是public(允许省略public修饰符)

interface Com{public static final int MAX=100;    //等价写法public abstract void add();     //等价写法,void add();public abstract float sum(float x,float y); //等价写法,float sum(float x,float y);public default int max(int a,int b){return a>b?a:b;}
}

注:不可以省略default关键字,因为在接口体中不允许定义通常的带方法体的public实例方法

接口体中的static方法

interface Com{public static final int MAX=100;    //等价写法public abstract void add();     //等价写法,void add();public abstract float sum(float x,float y); //等价写法,float sum(float x,float y);public default int max(int a,int b){return a>b?a:b;}public static void f(){System.out.println("注意是从JDK SE8开始的");}
}

接口回调

接口声明的变量称作接口变量,接口属于引用型变量,在接口变量中可以存放实现该接口的类的实例的引用,即存放对象的引用

在Java中,接口回调是一种设计模式,允许一个接口在实现该接口的对象上调用方法。这通常用于实现事件监听器或观察者模式,其中对象需要在特定事件发生时被通知。通过回调接口,对象可以注册一个回调,然后在需要时被调用。

// 定义一个回调接口
interface Callback {void onCompletion(String result);
}// 创建一个任务类,用于执行操作并在完成时回调
class Task {private Callback callback;public Task(Callback callback) {this.callback = callback;}public void execute() {// 模拟任务执行过程String result = "任务执行完成";// 任务完成后回调if (callback != null) {callback.onCompletion(result);}}
}// 实现回调接口的类
class MyCallback implements Callback {@Overridepublic void onCompletion(String result) {System.out.println("收到任务结果: " + result);}
}public class InterfaceCallbackDemo {public static void main(String[] args) {// 创建一个实现了Callback接口的实例MyCallback myCallback = new MyCallback();// 创建任务并传入回调对象Task task = new Task(myCallback);// 执行任务task.execute();}
}

若有侵权,请联系作者

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com