Java:接口回调与向上转型

Java接口回调与向上转型 系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录一、Java接口回调二、向上转型1.向上转型与static方法2. 个人理解在这里插入图片描述 一、Java接口回调 接口回调的格式为:接口名 对象名 = new 类名();相比于使用类名来new一个对象,使用接口回调并不能使用类的属性以及方法,并且不能修改接口里面的成员,因为 阅读详情
1.接口回调是什么[2]?
接口回调是指:可以把使用实现了某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。看下面示例。

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.
再来看看向上转型(upcasting)的概念。
2.什么是向上转型[1]?
 



Shape s=new Circle();

这里,创建了一个Circle对象,并把得到的引用立即赋值给Shape。通过继承,Circle就是一种Shape。
假设你调用基类方法(它已在导出类中被覆盖):

s.draw();

由于后期绑定(多态),将会正确调用Circle.draw()方法。
3.Java中的跨类引用
在java里面,关于跨类引用,有两条规则应该记住:
1)如果a是类A的一个引用,那么,a可以指向类A的一个实例。或者说指向类A的一个子类,这是向上转型的情形。
2)如果a是接口A的一个引用,那么,a必须指向实现了接口A的一个类的实例。这是接口回调的情形。
在java里面,向上转型是自动进行的,但是向下转型却不是,需要我们自己定义强制进行.

class B extends A{} 
  
public class A { 
    public static void main(String[] argts){ 
       A a1=new A(); 
       A a2=new B();//Upcasting 
       B b1=new B(); 
       B b2=(B) new A();//DownCasting 
    } 
}

4.向上转型与接口回调的区别
从实现了某接口的对象,得到对此接口的引用,与向上转型为这个对象的基类,实质上效果是一样的。这些对象都可以调用基类型提供的方法,对于接口来说就是回调接口中的方法,对于父类来说就是调用父类的方法。当然在向上转型的情况下,还牵涉到子类重写(Override)父类方法的情形。
java类和对象,上转型,接口回调 第一部分 有一个抽象类ObjectVolume,如下所示: abstract class ObjectVolume { abstract double getVolume(); //返回物体的体积 } (1)编写球体类,立方体类和圆柱体类,它们是抽象类ObjectVolume的子类。 (2)编写一个公共类,其中包含main方法和static void get(ObjectVolume obj)方法。 (3)在main方法中,从键盘上输入1(表示球体)、2(表示立方体)、3(表示圆柱体)时,调用get方法可以分别得到球体、立方体、圆柱体的体积。 第二部分 有一个接口UnitPrice,如下所示: interface UnitPrice { public double unitprice( ); //返回商品的单价 } (1)编写电视机类、计算机类和手机类来实现接口UnitPrice。 (2)编写一个公共类,其中包含main方法和static double get(UnitPrice u)方法。 (3)在main方法中,从键盘上输入电视、计算机和手机的销售个数,调用get方法可以分别得到商店关于上述商品的总销售额。 立即下载

相关推荐

操作系統恐龍書第十版課後答案CH10

課後

apple_72111807的博客 4046

向上转型与接口回调的区别

1 .接口回调是什么 接口回调是指:可以把使用实现了某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。看下面示例。 interface People {...

water84222的专栏 497

具身智能:从理论突破到场景落地的全解析

具身智能(Embodied Intelligence)是人工智能与机器人学深度融合的前沿领域,其核心在于通过物理实体与环境的动态交互实现智能行为。区别于传统 AI 的 “离身性”(如语音助手仅依赖数据输入),具身智能强调 “智能体通过身体感知世界并反作用于环境”,形成 “感知 - 决策 - 行动” 的闭环。例如,能自主避障的配送机器人、可精准抓取异形物体的机械臂,均通过传感器网络与环境实时互动,在试错中优化行为策略。

LeeKumaの技术Note 2681

简述上转型对象和接口回调

本来只是想写一些对象上转型,由于和接口回调相仿,简单提一下接口回调。 1、上转型对象:父类声明子类实例化       接口回调:接口声明实现类实例化 上转型对象 class A{ void a(){ System.out.println("This is A"); } } class B extends A{ void a(){ System.out.println("Thi

顶峰 2526

滚动时域优化方法

滚动时域优化(Receding Horizon Optimization, RHO),也被广泛称为模型预测控制(Model Predictive Control, MPC),是一种用于动态系统优化和控制的。其核心思想是“在每个当前时刻k,控制器只考虑未来一个(称为“预测时域”或“优化时域”,长度N)内的系统行为。(通过测量或估计得到)。(描述状态如何随输入和干扰变化)。(如果有,可能基于历史数据或假设)。在这个有限的未来时域[k, k+N-1]上,求解一个。这个优化问题的目标是找到一个。

m0_69522810的博客 2296

计算机组成原理课程设计_微程序控制的简单模型机设计

微程序控制的简单模型机设计 要求 基本要求 完成一个简单主机的设计,模型机应具备如下能力:在自行设计的指令集基础上,运行自行编写的简单用户程序,实现特定运算功能。 弹性要求 在此基础上,完成必要的扩展,实现模型机的功能扩展设计,包括:实现多种运算功能(指令集的扩充)、支持更为丰富的寻址方式、有更为完善的微程序设计等。 实验软件和硬件环境 QuartusII, FPGA计算机组...

sailist的记录站 3万+

接口回调

Java是一门面向对象语言,一切皆对象,因此在Java中不存在回调函数这一说法的。由于Java的一切皆对象性质,从而将回调函数这个特性提升到了接口回调。 接口回调是什么? 接口回调:可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对

Jason_996的博客 700

个人顶级AI助手OpenClaw(Clawdbot) - 新手快速入门指南

本文详细介绍了个人顶级AI助手OpenClaw(Clawdbot) 的快速入门指南,包括安装部署和使用配置及注意事项

program哲学 5305

java 接口回调 可以用类替代吗_接口回调(接口引用)及类的引用

packagedao;classFather{voidmethod(){System.out.println("Father method called.....");}}classSonextendsFather{voidmethod(){System.out.println("Son method called.....");}}publicclassTestAbstract{publicst...

weixin_35909443的博客 212

生信技能53 - WisecondorX自动化批量npz转换和reference构建

wiseconrdoX分析CNV适用于CNVseq、NIPT和WGS等项目。

LittleComputerRobot的博客 465

lammps教程:非晶sio2建模方法

大家好,我是小马老师。 本文介绍非晶sio2的建模方法。 sio2的建模方法有很多,可以下载cif文件使用atomsk转为data文件,也可以直接在ms中导入sio2结构,这些方法建的sio2都是标准的sio2晶体。 如果要建立非晶状态的sio2,就是把排列规则的sio2变成无序排列的sio2。 非晶建模方法有很多,在lammps中,可以通过高温高压的方法打乱sio2的排列实现非晶建模。 代码中的温度和步数可根据需要自己调整。 下面给出in文件案例代码。 units metal atom

lammps_jiayou的博客 5268

java接口用法:向上转型和接口回调

1. 向上转型 使用接口的核心原因:为了能够向上转型为多个基类型。即利用接口的多实现,可向上转型为多个接口基类型。 java接口或抽象类都可以使用向上转型,它们用的都是java运行时多态技术,或者叫运行期绑定技术。 下面是一个java接口向上转型的例子: interface People{ void peopleList(); } class Student implements P

jxf_access的专栏 4218

车载以太网-ARP 动态 静态

车载以太网-ARP 动态 静态

天赐好车的博客 409

java接口用法:向上转型和回调函数

一、向上转型 下面一句话出自Thinking in Java。 使用接口的核心原因:为了能够向上转型为多个基类型。即利用接口的多实现,可向上转型为多个接口基类型。 j      ava接口或抽象类都可以使用向上转型,它们用的都是java运行时多态技术,或者叫运行期绑定技

chuck_sun的专栏 1042

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

[待修改]java接口用法:向上转型和回调函数 回调机制在 Android 监听用户界面操作中的体现

http://www.cnblogs.com/lingyun1120/archive/2011/10/09/2203837.html 一、向上转型 下面一句话出自Thinking in Java。 使用接口的核心原因:为了能够向上转型为多个基类型。即利用接口的多实现,可向上转型为多个接口基类型。 j      ava接口或抽象类都可以使用向上转型,它们用的都是java运行时多态技术

Skypine_Lee的专栏 651

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

[待修改]java接口用法:向上转型和回调函数 回调机制在 Android 监听用户界面操作中的体现...

一、向上转型下面一句话出自Thinking in Java。使用接口的核心原因:为了能够向上转型为多个基类型。即利用接口的多实现,可向上转型为多个接口基类型。j ava接口或抽象类都可以使用向上转型,它们用的都是java运行时多态技术,或者叫运行期绑定技术。下面是一个java接口的普遍用法,interface People{void peopleList();}class Student...

weixin_30929195的博客 174

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Java多态

对外只说父类的名字,但实际用的是子类的对象。比如家里做饭,“切菜” 这个动作:切土豆(切大块)、切肉丝(切细丝)、切葱花(切碎末),动作名一样,处理方式随食材变。::通过接口定义统一规范,不同实现类提供差异化实现,调用方通过接口引用触发不同逻辑(如 Java 的 ActionListener 接口)。多态就是「父类的引用指向子类的对象」,调用同一个方法名时,实际执行的是子类自己的实现 —— 简单说就是 “静态方法(static):属于类级别的方法,调用时仅与引用类型相关,不支持重写,无多态特性。

asweu的博客 372

[Java]什么是接口回调?

什么是接口回调? 1.接口回调是什么[2]? 接口回调是指:可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。看下面示例。 interface People{ void peopleList(); } class Student implements People{ public void peopleList...

jgw2008的专栏 8241

java 向上转型 父类是接口,向上转型与接口回调

什么是接口回调?1、接口回调是什么?接口回调是指:可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。看下面示例。interface People {void peopleList();}class Student implem...

weixin_28981373的博客 287

Java回调深入理解

文章目录1 什么是接口回调 1 什么是接口回调 什么是接口回调? 1.接口回调是什么[2]? 接口回调是指:可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。看下面示例。 interface People{ void peopleList(); } class Student implements People{ public void

上善若泪 581

android 自定义接口,Android中定义接口的用法

1、接口方法用于回调 (这里定义接口是为了使用其接口方法):public interface ICallback {public void func();}public class Caller {ICallback callback;public void doCallback() {callback.func();}public void setCallback(ICallback cal...

weixin_39541869的博客 598
上一篇: Vc++四种思考模式
下一篇: ieframe.dll\1未找到
Hack_Bug
博客等级 码龄15年 34粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值