Java继承字段[重复]

2023-11-27

我无法理解以下输出。

我不知道为什么输出是 10,我认为该行A a = new B()创建B类的新实例,我认为结果应该是20

class A {
    int i = 10;
}

class B extends A {
    int i = 20;
}

public class MainClass {
    public static void main(String[] args) {
        A a = new B();

        System.out.println(a.i);
    }
}

为什么会这样工作..请解释一下。


首先,看隐藏字段(强调已添加)

在类中,与超类中的字段同名的字段隐藏超类的字段,即使它们的类型不同

换句话说,这不是“继承”,因为你实际上是在隐藏A's i behind B's i,并且您正在使用的参考对象A,所以你得到了它的字段。如果你这样做了B b = new B(),你会看到20,正如预期的那样。


如果您期望真正的覆盖,请尝试使用方法。

class A {
    public int get() { 
        return 10; 
    }
}

class B extends A {
    @Override 
    public int get() { 
        return 20; 
    }
}

See

A a = new B();
System.out.print(a.get()); // 20

如果您确实想同时查看两者,请参阅此示例。

class A {
    int i = 10;
}

class B extends A {
    int i = 20;

    @Override 
    public String toString() { 
        return String.format("super: %d; this: %d", super.i, this.i);
    }
}

And

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

Java继承字段[重复] 的相关文章

  • android.view.InflateException:二进制 XML 文件行 #11:膨胀类 ImageView 时出错

    我只是尝试制作一个小的 android java xml 应用程序来计算游戏的分数 它给了我这个错误 Error inflateing class ImageView 有人知道解决方案吗 我实际上搜索了 ppl 说添加这个 android
  • 将一种类型的对象声明为另一种类型的实例有什么好处? [复制]

    这个问题在这里已经有答案了 可能的重复 Base b2 new Child 是什么意思 表示 https stackoverflow com questions 4447924 what does base b2 new child sig
  • JavaFX 2.0 FXML 子窗口

    经过多次搜索我发现了这个问题如何创建 javafx 2 0 应用程序 MDI https stackoverflow com questions 10915388 how to create a javafx 2 0 application
  • 项目缺少所需的注释处理库

    我的 Eclipse IDE 突然在问题视图中显示 xxxx 项目缺少所需的注释处理库 xxxx M2 REPO 中的一些旧 jar 我用谷歌搜索 没有找到任何答案 为什么我的项目使用旧的 jar 以及错误来自哪里 To remove th
  • 检查 IPv4 地址是否在私有范围内

    在 Python 中 使用 IPy 模块您可以执行以下操作 gt gt gt ip iptype PRIVATE 有没有一个库或简单的方法可以在 Java 中执行相同的操作 似乎不完全是但是InetAddress有一些 isXX 方法 例如
  • JTextField 和 JTextArea

    JTextField 和 JTextArea 有什么不同 是否可以在一个班级中使用这两个班级 总之 JTextField 是单行文本字段 而 JTextArea 可以跨越多行 文档中清楚地解释了这些差异 文本区 http docs orac
  • java中的单链表和双向链表?

    在java中 哪个集合接口可以有效地实现单链表和双向链表 请问代码示例吗 毫不奇怪 实现双向链表的正确接口是 LinkedList 看Java文档 http docs oracle com javase 8 docs api java ut
  • 在 Junit 测试中使用 ReflectionTestUtils.setField()

    我是 JUnittesting 的新手 所以我有一个问题 谁能告诉我为什么我们使用ReflectionTestUtils setField 在我们的 Junit 测试示例中 正如评论中提到的 java 文档很好地解释了用法 但我还想给你们举
  • 在 Java 中创建 T 的新实例

    在C 中 我们可以定义一个泛型class A
  • Java - JPanel 内有边距和 JTextArea

    我想创建这样的东西 主面板有其边距 x 并且 TextArea 位于该面板的中心 几乎填满了面板 底部是另一个具有自定义尺寸 高度 y 的面板 可以使用某些快捷方式将其切换为可见和不可见 底部面板有 FlowLayout 和几个元素 问题是
  • 将现有 eclipse 项目导出到 war 文件时出现“模块名称无效”

    我正在尝试将现有 Eclipse 项目导出到 war 文件 但无论我在 WAR Export 对话框页面中输入什么 系统总是返回 模块名称无效 我不知道如何解决这个问题 谢谢您的帮助 我有同样的问题 我修复了它 请按照以下步骤操作 您可以创
  • 如何使用 swagger-codegen-plugin (maven) 生成客户端代码?

    我需要使用 swagger codegen plugin for maven 在 eclipse 中生成服务器存根代码 你能帮忙怎么做吗 以及需要什么配置 在 pom xml 中 我找到了这个答案 您只需要像下面这样更改 pom xml 即
  • 从 Android 访问云存储

    我一直无法找到任何有关如何从 Android 应用程序使用云存储的具体文档 我确实遇到过这个客户端库 https cloud google com storage docs reference libraries然而 Google Clou
  • 多线程——更快的方法?

    我有一堂有吸气剂的课程getInt 和一个二传手setInt 在某个领域 比如说领域 Integer Int 一个类的一个对象 比如说SomeClass The setInt 这里是同步的 getInt isn t 我正在更新的值Int来自
  • java swing:向 JTree 项目添加自定义图形按钮

    我想在 JTree 中的项目右侧添加一个带有小图标的附加按钮 这可以做到吗 如果是这样 怎么办 thanks Clamp 你在这方面成功了吗 我想做同样的事情 但很难让 JButton 响应用户 设置渲染器以显示按钮的过程很顺利 但所有鼠标
  • Java和手动执行finalize

    如果我打电话finalize 在我的程序代码中的一个对象上 JVM当垃圾收集器处理这个对象时仍然再次运行该方法吗 这是一个大概的例子 MyObject m new MyObject m finalize m null System gc 是
  • android 中的 java.net.URL ..新手问题

    我是java新手 正在尝试android开发 以下代码生成 malformedURLException 有人可以帮助我识别异常吗 任何提示都会非常有帮助 package com example helloandroid import and
  • 如何使用注释处理 Hibernate 和 Spring 中的连接查询?

    我正在使用 Spring 和 Hibernate 以及 MySQL 开发应用程序 我是 Hibernate 新手 完成了基本任务 现在我需要在选择查询中应用联接以使用注释从多个表中获取数据 我已经搜索过但仍然没有任何想法 这是我的数据库表和
  • 你能快速告诉我这个伪代码是否有意义吗?

    我相信我的代码现在是万无一失的 我现在将写出伪代码 但我确实有一个问题 为什么 DRJava 要求我返回 if 语句之外的内容 正如你所看到的 我为 ex 写了 return 1 只是因为它问了 但是它永远不会返回该值 谁可以给我解释一下这
  • 将数组值导出到 csv 文件 java

    我只需要帮助将数组元素导出到 csv 文件 我不知道我的代码有什么问题 任何帮助将不胜感激 谢谢 for int index 0 index lt cols length index FileWriter fw new FileWriter

随机推荐

  • WordPress 将“&&”更改为“&&”

    我正在使用PHPinclude 函数来包含静态PHP and JS我的 WordPress 页面中的内容 通过 ezPHP 插件实现 PHP 工作正常 但 JS 不行 我收到 非法字符 错误 每个实例 正在更改为 html 代码 我尝试将其
  • 如何判断您要从 WinForms 选项卡控件中移动到哪个选项卡?

    我需要确定用户在切换选项卡时来自和前往哪个选项卡 并可能取消切换 我尝试过取消选择 取消选择 选择 选定事件 所有这些事件都显示 e TabPageIndex 与 sender SelectedIndex 相同 是否有一个事件或属性可供我使
  • 类型擦除:Java 与 C# [重复]

    这个问题在这里已经有答案了 可能的重复 C 与 Java 泛型 Java use 类型擦除 while C 在运行时保留类型信息 该设计的语言行为有何实际差异 类型擦除存在很多问题 它勾起了不好的回忆 我从 1 6 开始就没有使用过 Jav
  • WebRTC的RTCDataChannel在iOS中的实现

    我在用ISBX apprtc ios视频聊天实现代码 这在 iPhone 和模拟器中完美运行 我想在两个对等点之间发送文本 字符串数据 并且我正在使用RTCDataChannel class 以下是我的实现 我无法建立连接 它总是给出状态k
  • 如何在不使用代码的情况下使用约束 AutoLayout 来指定横向与纵向的不同布局?

    我有一个带有登录屏幕的 iPad 应用程序 登录控件包含在 UIView 中 当 iPad 处于纵向方向时 我的登录 UIView 靠近应用程序的底部和中心 几乎就在键盘所在位置的正上方 公司徽标位于顶部居中的 UIImageView 中
  • ASP.NET MVC 4应用程序调用远程WebAPI

    我过去创建过几个 ASP NET MVC 应用程序 但以前从未使用过 WebAPI 我想知道如何创建一个简单的 MVC 4 应用程序 通过 WebAPI 而不是通过普通的 MVC 控制器来执行简单的 CRUD 操作 诀窍在于 WebAPI
  • Sharepoint API - 如何从 ASP.NET Web 应用程序将文件上传到 Sharepoint 文档库

    我是 Sharepoint Server 的新手 我们有任何实用程序可以从 ASP NET 应用程序上传文件吗 您能提供您宝贵的答案吗 您可以编写一些自定义代码来执行此操作 如果您位于同一服务器上或使用 Web 服务 则可以使用 Share
  • 是否可以转换参数包中的类型?

    是否可以转换参数包的类型并传递 例如 鉴于以下情况 template
  • 不存在具有键“xxx”的“IEnumerable”类型的 ViewData 项

    Stack Overflow 上有几篇关于此问题的帖子 但没有一个答案似乎可以解决我当前情况下的问题 我有一个页面 其中有一个表格 每行都有多个文本字段和一个下拉列表 所有下拉列表都需要使用相同的 SelectList 数据 因此我将其设置
  • 在共享主机上为 32 位 Linux 编译 git

    我需要在廉价的共享主机上设置 Git 客户端 并使用一个不知名的 32 位 Linux 发行版 GCC 不可用 所以我无法在服务器上编译它 我确实有两台其他 64 位 Linux 服务器和一台 OSX 笔记本电脑可供使用 我可以尝试在其上交
  • Gnuplot,如何*跳过*丢失的数据文件?

    根据各种因素 我可能没有 1 个或多个不存在的数据文件 在预定义的 gnuplot 绘图指令中引用 当这种情况我得到 警告 跳过不可读的文件 这会取消其余指令 有什么方法可以让 gnuplot 跳过任何丢失的数据文件并绘制所有现有的数据文件
  • 为什么我收到“错误:无法推送某些参考”?

    我有一个远程 git 存储库和一个我使用的本地存储库 每当我在本地进行任何更改时 我都会将它们推送到远程 然后我有时会在远程文件上执行 git commit 以存储远程文件上的更改 我根本不直接编辑远程存储库 我只是提交更改 我是一名单一开
  • Android堆碎片策略?

    我有一个 OpenGL Android 应用程序 它使用大量内存来设置复杂的场景 这显然会导致严重的堆碎片 即使不存在内存泄漏 也不可能在不因碎片而耗尽内存的情况下销毁和创建应用程序 碎片肯定是问题 而不是泄漏 这会导致一个主要问题 因为
  • python 3.x ImportError:没有名为“cStringIO”的模块

    我该如何解决ImportError No module named cStringIO 在Python 3 x下 来自 Python 3 0 变更日志 StringIO 和 cStringIO 模块消失了 相反 导入 io 模块并分别使用
  • 如何在嵌套 Backbone 集合上“冒泡”事件?

    我有一个 Backbone 应用程序使用嵌套集合 至少我认为他们是这样称呼的 在我的具体情况下有tabs and subtabs 每个选项卡 模型 包含子选项卡 模型 的集合 对于那些更熟悉代码的人 我将在下面写下我的模型和集合 以及子选项
  • 在 OS X Mavericks 中从 C++ 链接 C

    转换到 OS X Mavericks 和 XCode 5 0 1 后 我无法再将已编译的 C 文件 从 gcc 输出 正常链接到 C 项目 从 g 输出 从我的 makefile 生成的有问题的命令对是 gcc pkg config cfl
  • Bootstrap 3 像 Facebook 一样的 Canvas 侧边栏菜单

    我正在使用 Bootstrap 3 的一些示例作为移动设备上的画布外侧边栏菜单 如下所示 http jsfiddle net AllenDB 9aAjJ 我将如何调整画布外菜单 使其像 Facebook 的搜索 朋友在线画布外菜单一样 始终
  • 用于任意大数的 BCD 数学库?

    我正在寻找库存 Delphi Data FmtBcd 库的替代品 因为我刚刚达到了它的限制 例如它可以表示的最大十进制数字 并且程序以以下方式终止EBcd 溢出异常 出于好奇 我正在计算算术系列成员 并且需要处理非常大的数字 数十万个位置并
  • 浏览器什么时候开始渲染部分传输的 HTML?

    我有一个长期运行的报告 并希望在生成报告时向用户显示一个等待旋转器 我已经完成了这项工作 但不确定我是否以最好或正确的方式做这件事 这是使用 ColdFusion 但我猜它可以是任何语言 在页面顶部 我有一些 Javascript jQue
  • Java继承字段[重复]

    这个问题在这里已经有答案了 我无法理解以下输出 我不知道为什么输出是 10 我认为该行A a new B 创建B类的新实例 我认为结果应该是20 class A int i 10 class B extends A int i 20 pub