为什么bark方法无法调用

2024-03-23

class Animal{
    void run() {
    }
}
class Dog extends Animal {
    void bark() {
    }
}
class Testing{
    public static void main(String[] args)  {
        Animal d = new Dog();
        d.run();
        d.bark();
    }
}

我试图使用狗类的对象调用吠声方法,该对象的引用存储在动物类变量中。但它向我显示编译时错误。谁能解释一下为什么?


这就是它的工作原理。

当编译器尝试检测谁是d.?它看到了。

Animal d

编译器不知道它是如何创建的,看看引用类型。所以,d is an Animal.

现在参考的是Animal. Does Animal have a bark()方法?不。ERROR.

May be d is a Dog里面但编译器不知道并且编译器不应该知道,编译器翻译你所说的内容d在这种情况下。这就是你收到错误的原因。

现在你可以看出我想要d充当Dog因为我知道d is a Dog by,

((Dog) d);

然后打电话bark()

((Dog) d).bark();

所以编译器会采取d as a Dog仅用于此操作。

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

为什么bark方法无法调用 的相关文章

随机推荐

  • 如何使用 ActionScript 3 在 Flash 中创建文本按钮?

    当我尝试使用文本字段作为按钮时 它似乎没有buttonMode财产 如何在 Flash 项目中使用 ActionScript 以编程方式创建文本按钮 它应该是一个简单的文本 可以点击 您可以添加TextField to a Sprite并将
  • 如何在具有提升权限的 WiX 中创建的 MSI 中运行自定义操作?

    我有一个安装程序需要访问注册表并使用自定义操作复制和删除文件 在 Windows XP 中 安装程序运行良好 但在 Vista 和 7 中 安装程序显示错误 因为它无法访问文件夹 但如果我以管理员身份运行安装程序 则一切正常 因此 我需要安
  • firebreath JSAPI 在 firefox 中不会被识别

    首先介绍一下我使用 Firebreath 所做的一些背景知识 我正在使用 firebreath 在浏览器中开发渲染查看器插 件 我在插件中定义了两种 MIME 类型 一种用于主查看器 另一种用于 2D 平面图 在每个页面中 仅允许一个主查看
  • 反应本机视图拍摄捕捉模糊屏幕截图

    我正在使用react native snap shot 库来共享我的屏幕 它对于小内容工作正常 但对于详细视图长滚动视图 其模糊且文本不可读
  • 将 java.sql.date 转换为 java.time.LocalDateTime

    我如何转换java sql Date从 JDBC 数据库返回到java time LocalDateTime 实际上比我想象的要容易 这对我有用 java sql ResultSet result result getTimestamp v
  • 多个action.class.php

    我确实有一个模块 例如帐户 当然 您会在 acount actions action class php 中找到一个名为的文件 PHP 文件action class php 变得越来越大 可以延长吗 举个例子 account action
  • 当我拥有原始文件时恢复 AES 加密文件密码

    如果某人同时拥有加密文件和原始文件 有没有办法知道用于加密文件的秘密是什么 AES 是一种分组密码 不易受已知明文攻击 http en wikipedia org wiki Known plaintext attack 蛮力是你唯一的选择
  • Ext JS:xtype 有什么用?

    我看到 Ext JS 中有很多例子 其中不是实际创建 Ext JS 对象 而是一个带有xtype属性被传入 这有什么用 如果无论如何都要创建对象 性能增益在哪里 如果这是原因 xtype是识别特定组件的简写方法 panel Ext Pane
  • 在这种特定情况下,使用成员初始值设定项列表和在构造函数中赋值之间有区别吗?

    在内部和生成的代码方面 以下之间是否存在真正的区别 MyClass MyClass capacity 15 data NULL len 0 and MyClass MyClass capacity 15 data NULL len 0 谢谢
  • 进程的页表是否映射到内核地址空间?

    我当时正在做 Windows 系统编程 想知道是否可以在源代码级别访问进程的页表 这是我所了解的与虚拟内存相关的页表 假设用户刚刚在 Windows 操作系统 32 位 上运行一个名为 A 进程的进程 首先 操作系统为A进程创建并维护4GB
  • ER 图中的 mysql 工作台列图标意味着什么?

    谁能帮我解释一下 MySQL Workbench 中创建的数据库 ER 图中的图标 蓝钻 实心 蓝钻 未填充 红钻等 Thanks 我在 MySQL 的网站上找到了这些资源 http dev mysql com doc workbench
  • 一个数组占用多少空间?

    如果我创建 10 个整数和一个 10 的整数数组 占用的总空间会有什么差异吗 我必须创建一个包含数百万条记录的布尔数组 所以我想了解数组本身将占用多少空间 整数数组表示为保存整数的内存块和对象头 对于 32 位 JVM 对象标头通常需要 3
  • 有修订的三重存储

    我需要存储 RDF 三元组 同时跟踪修改 有这项服务吗 或者 在使用上下文感知三重存储时如何跟踪修订 Edit 请注意 我不仅仅需要变更集 我还需要查看过去任何时间的三元组 我试图通过存储额外的三元组来解决这类问题 这些三元组描述了谁在何时
  • 为什么不能在函数中声明模板?

    Reading C 模板 完整指南 http www amazon co uk Templates Complete Guide David Vandevoorde dp 0201734842它说 请注意 模板不能被声明 在一个函数中 它不
  • Leanback 库支持 API 级别 19 Android for TV 应用程序吗?

    是否有针对 Android API 级别 19 的 Leanback 库支持 在这个链接中https developer android com reference android support v17 leanback package
  • 从 AudioBuffer 在 Node.js 中写入 wav 文件

    我是 Node js 编程新手 我正在尝试将 m4a 文件转换为 wav 文件 我使用了 audiobuffer to wav 和 web audio api 这是我的代码 const fs require fs const toWav r
  • Java接口和继承

    如果我们有 public interface Foo public class Bar implements Foo 之间有区别吗 public class BarBar extends Bar implements Foo and pub
  • 如何使用 AVFoundation 将视频转换为动画 gif?

    在使用 AVFoundation 和 AVCamRecorder 录制电影后 我正在推送一个新的 UIViewController 目前 我正在从保存电影的 URL 播放电影 效果很好 我在理解如何将视频从 URL 转换为动画 gif 时遇
  • 抑制已经遇到的列表元素

    您好 我有一个正在尝试编辑的速度模板 它目前有一个看起来像的块 foreach element in myList element field1 element field2 issued by element field element
  • 为什么bark方法无法调用

    class Animal void run class Dog extends Animal void bark class Testing public static void main String args Animal d new