深入解析Java的接口回调机制
接口回调是一种体现多态性的方式。它允许将实现了某一接口的类的对象引用赋给该接口声明的接口变量,从而可以通过接口变量调用类实现的接口中的方法。这样做就相当于通知相应的对象调用接口的方法,也被称为接口回调。当不同的类使用同一接口时,它们可能具有不同的功能实现,也就是说接口中的方法体可以不相同。因此,通过接口回调可以实现不同的行为。
public interface IntefaceHuidiao {
void showMessage();
}
public class PC implements IntefaceHuidiao {
public void showMessage() {
System. out .println( " 我是电脑 !" );
}
}
public class TV implements IntefaceHuidiao {
public void showMessage() {
System.out.println(" 我是电视机 !");
}
}
public class TestIntefaceHudiao {
public static void main(String[] args) {
IntefaceHuidiao ms ;
ms = new TV();
ms.showMessage();
ms = new PC();
ms.showMessage();
}
}
java为什么要使用接口回调
具体怎么解释可能不是特别好解释啊....
给你看看刚写的一段程序好了...很容易理解的...
interface Msg{
void showMessage();
}
class NbMsg implements Msg{
public void showMessage() {
System.out.println("123456");
}
}
class CahrMsg implements Msg{
public void showMessage() {
System.out.println("abcdef");
}
}
public class test {
private Msg msg;
public void show() {
System.out.println("处理一些东西");
msg.showMessage();
}
public void setMsg(Msg msg) {
this.msg = msg;
}
public static void main(String[] args) {
test a = new test();
a.setMsg(new CahrMsg());
a.show();
a.setMsg(new NbMsg());
a.show();
}
}
结果是:
处理一些东西
abcdef
处理一些东西
123456
为什么接口可以实现回调
接口回调是指:可以把使用实现了某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。看下面示例.
interface people {
void peoplelist();
}
class student implements people {
public void peoplelist() {
system.out.println("i'm a student.");
}
}
class teacher implements people {
public void peoplelist() {
system.out.println("i'm a teacher.");
}
}
public class example {
public static void main(string args[]) {
people a; // 声明接口变量
a = new student(); // 实例化,接口变量中存放对象的引用
a.peoplelist(); // 接口回调
a = new teacher(); // 实例化,接口变量中存放对象的引用
a.peoplelist(); // 接口回调
}
}
结果:
i'm a student.
i'm a teacher.
以上是深入解析Java的接口回调机制的详细内容。更多信息请关注PHP中文网其他相关文章!

什么是zlib1.dll?有些人遇到“ zlib1.dll丢失”错误或zlib1.dll试图打开包含zlib1.dll的应用程序时找不到错误。为了解决这些相关错误,PHP.CN网站上的这篇文章可以为您提供一些我

你们中有些人可能会发现自动填充没有在Excel中工作。您能提出任何解决方案吗?如果没有,那么您就会到达正确的位置。 PHP.CN网站上的这篇文章将为您提供6种方法来解决Excel Autofill无法正常工作的方法。

什么是Windows 7 Starter版本? Windows 7 Starter版的局限性是什么?如何获得Windows 7首发版ISO?来自PHP.CN的这篇文章为您提供了有关Windows 7 Starter Edition的详细信息。

运行应用程序时,您是否通过登录目前然后登录另一个应用程序来更改帐户感到困扰? PHP.CN收集了一些有效的方法来帮助您在Windows 10和Windows 11中作为其他用户运行应用程序。

您是否患有“ Dropbox下载文件的错误下载您的文件”错误?现在阅读PHP.CN发表的这篇文章,以获取有关此问题的一些有用解决方案。

您是否对“所选文件在文件资源管理器中未突出显示”的问题感到困扰?您知道如何解决吗?如果没有,您可以在PHP.CN上阅读此帖子,以获取几个可行解决方案,以使所选文件在文件资源管理器中可见。

如果您使用多语言,语言栏是必不可少的。您可以通过从任务栏调整设置来更改输入语言。但是,当您打开计算机时,语言条可能有一天会消失。如何修复语言栏丢失

是否想使用外部驱动器来扩展手机的存储空间?可以这样做。此php.cn帖子向您展示了如何将外部驱动器连接到手机的指南。此外,如果您需要从外部驱动器中恢复数据,则可以尝试PHP


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器