重载方法调用问题

2023-11-29

请让我知道,重载是编译时多态性,它考虑调用该方法的引用变量。假设如果我们有参数重载方法,那么将调用哪个重载方法将由我们调用方法的参数或对象抛出决定。

请在下面找到我的代码:

package com.overload;

class Bird {
    public void call(Bird bird) {
        System.out.println("Bird");
    }
}

class Crow extends Bird {
     void call(Crow bird) {
        System.out.println("Crow" );
    }
}
public class OverloadApp {    
    public static void main(String[] args) {
        Bird bird = new Bird();
        Bird crowBird = new Crow();
        Crow crow = new Crow();

        bird.call(bird);  // 1 - O/P:Bird
        bird.call(crow);  // 2 - O/P:Bird
        bird.call(crowBird);// 3 - O/P: Bird

        crow.call(bird); // 4 - O/P:Bird
        crow.call(crow); // 5 - O/P:Crow
        crow.call(crowBird); // 6 - O/P:Bird

        crowBird.call(bird); // 7 - O/P:Bird
        crowBird.call(crow); // 8 - O/P:Bird
        crowBird.call(crowBird); // 9 - O/P:Bird
    }
}

For bird.call(crow); // 2 - O/P:Bird-bird将决定调用哪个重载方法或参数crow决定调用哪个重载方法。

看到 O/P 后我有点困惑。

谢谢, 卡迈勒


这个调用

    bird.call(crow);  // 2 - O/P:Bird
    crowBird.call(crow); // 8 - O/P:Bird

call call(Bird bird)因为声明类型两个变量的Bird它只知道Bird该方法的版本。它不认识另一者。

但有变数crow被声明为Crow所以有两种方法可供选择...


如果是这样的话,那么为什么
crow.call(bird); // 4 - O/P:Bird
and
crow.call(crowBird); // 6 - O/P:Bird是鸟。在这两种情况下,O/P 应该是“Crow”,因为声明的类型是Crow。 ——卡迈勒·维尔马

不。 因为变量bird and crowBird被声明为类型Bird它们不能传递给Crow该方法的版本,尽管它可用于变量crow.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

重载方法调用问题 的相关文章

随机推荐

  • Cobertura 显示正确的覆盖范围,但在声纳中许多文件显示 0% 覆盖范围

    I have write multiple JUnit test classes for my project The code covergae is 80 when I see it in Eclipse using cobertura
  • 执行 sqlalchemy 存在查询

    我无法理解如何执行查询来检查 sqlalchemy 中是否已存在匹配的记录 我可以在网上找到的大多数示例似乎都引用了我没有的 会话 和 查询 对象 这是一个简短的完整程序 说明了我的问题 1 使用 person 表设置内存中的sqlite数
  • 将“Dialog”小部件的宽度设置为 Vaadin 14 中页面的百分比

    在瓦丁 14 中 Dialog当指定宽度和高度时 小部件可以正确打开px CSS 虚拟 像素 Dialog dialog new Dialog dialog setCloseOnEsc true dialog setCloseOnOutsi
  • 在 Yii2 中禁用单个操作的 CSRF 验证

    有没有办法对控制器的某些操作禁用 CSRF 验证 同时对其他操作保持启用状态 就我而言 我有几个可配置的 Action 类 它们旨在注入到控制器中 我无法将 csrf 验证令牌传递到 AJAX 请求中 因为我正在使用的东西是前端的外部 不是
  • NetBeans 7.0 的 Java UML 自动生成 [已关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我需要为我的项目制作 UM
  • Git:仅在将外部分支合并到主分支时防止快进合并

    为了方便查看功能分支何时合并到 master 可以使用 Git 的 no ff将其功能分支合并到主分支时的选项 无需键入即可完成此操作的一种方法 no ff是完全禁用快进合并到 master 中 git config branch mast
  • HTML5画布颜料混合颜色工具

    你好 我需要创建混合颜色工具 我尝试从画布中获取颜色像素getImageData并与我选择的颜色混合并获得平均颜色 我可以轻松获得它 r1 red channel from getImageData g1 green channel fro
  • 从 WP_Query 中排除 WooCommerce 产品类别

    我将以下参数定义为查询的一部分 args apply filters woocommerce related products args array post type gt product author gt artist post st
  • 使用 AutoMapper 的集成测试无法初始化配置

    框架和包 NETCoreApp 1 1 Xunit 2 2 0 AutoMapper 6 0 2 Microsoft AspNetCore TestHost 1 1 1 Microsoft NET Test Sdk 15 0 0 集成测试
  • Android:无法播放mp4视频

    我正在尝试玩mp4 视频流使用本机从服务器视频查看 遗憾的是我不断收到 无法播放视频 error 奇怪的是 同一个视频在 Froyo 上播放得很好 但在 HoneyComb 上却无法播放 我用 MX Video Player 在 HC 上
  • Java邮件性能

    我一直在使用 javamail 从 IMAP 服务器 当前是 GMail 检索邮件 Javamail 非常快地从服务器检索特定文件夹中的消息列表 仅 ID 但当我实际获取消息 仅信封 甚至不包含内容 时 每条消息大约需要 1 到 2 秒 快
  • Oracle 的 Sonarqube Web UI 配置文件管理速度很慢

    在虚拟化环境 生产 上安装带有 Oracle 的 SonarQube 与具有相同发行版的其他安装相比 配置文件管理非常慢 当许多配置文件在此架构 虚拟化 Linux Oracle 上使用时 我将不胜感激有关此功能的响应时间的一些反馈 下面的
  • nextjs POSt API 无法在实时环境中工作,但在本地工作完美

    我最近开始学习使用 Nextjs 构建 Web 应用程序 因此我决定构建一个简单的应用程序来玩弄和学习 我在本地开发 一切都很完美 但是 当我部署到 vercel 时 POST 功能不起作用 该应用程序非常简单 它在主页上显示一些数据 并且
  • 计算大数的方差

    我还没有真正使用过方差计算那么多 而且我不太知道会发生什么 事实上我的数学一点也不好 我有一个包含 1000000 个 0 10000 范围内的随机数值的数组 该数组可能会变得更大 因此我使用 64 位 int 进行求和 我试图找到有关如何
  • ReactJS:[Home] 不是 组件。 的所有子组件都必须是

    单击 开始测验 按钮时 我试图导航到 quiz 但是 当我编译代码时 我在网站应用程序上收到以下错误 Home is not a
  • Android、OpenGLES、CmdLine 工具,获取 MainDisplay 分辨率

    环境 Windows x64 主机 Android 5 0 USB 连接到 Windows 机器 三星盖乐世 5 可视化GDB OpenGL v1 4 ADB CmdLine 工具 gt 本机 C 无 Java Use case 实现一个提
  • 多态对象的 JSON 使用者

    我正在解析 JSON 并且很难理解一种可以具有三种形式之一的结构 就我而言 它可以是零维 一维或二维 有什么方法可以即时检查 JSON 以确定它是哪一个吗 或者也许无论如何都要吃掉它 然后再弄清楚它是什么 这些结构看起来像这样 并且可以嵌入
  • R 将逗号分隔的单元格分成行和笛卡尔积

    I have mydf下面的数据框 我想拆分包含逗号分隔数据的任何单元格并将其放入行中 我正在寻找类似于的数据框y以下 我怎样才能通过几个步骤有效地完成它 目前我正在使用cSplit一次在一列上运行 I tried cSplit mydf
  • SKTextureAtlas 中的 SKTexture 是否支持 mipmap 功能?

    来自苹果文档 只有当两个纹理的尺寸都是 2 的幂时 您才能请求 mipmap 然而 目前尚不清楚 SKTextureAtlas 中的 SKTexture 是否也支持此功能 因为它们本质上有点不同 我问这个问题是因为实际上很难从结果中看出是否
  • 重载方法调用问题

    请让我知道 重载是编译时多态性 它考虑调用该方法的引用变量 假设如果我们有参数重载方法 那么将调用哪个重载方法将由我们调用方法的参数或对象抛出决定 请在下面找到我的代码 package com overload class Bird pub