我对重写与隐藏在Java中有何不同感到困惑。谁能提供更多有关这些差异的详细信息?我阅读了Java教程,但是示例代码仍然让我感到困惑。

更清楚地说,我理解压倒一切。我的问题是,除了一个隐藏在实例级别而另一个隐藏在类级别之外,我看不到隐藏有什么不同。

查看Java教程代码:

public class Animal {

public static void testClassMethod() {

System.out.println("Class" + " method in Animal.");

}

public void testInstanceMethod() {

System.out.println("Instance " + " method in Animal.");

}

}

然后我们有一个子类Cat:

public class Cat extends Animal {

public static void testClassMethod() {

System.out.println("The class method" + " in Cat.");

}

public void testInstanceMethod() {

System.out.println("The instance method" + " in Cat.");

}

public static void main(String[] args) {

Cat myCat = new Cat();

Animal myAnimal = myCat;

Animal.testClassMethod();

myAnimal.testInstanceMethod();

}

}

然后他们说:

该程序的输出如下:

`Class method in Animal.

The instance method in Cat.`

对我来说,testClassMethod()直接从Animal类中调用类方法会在类中执行该方法这一事实Animal是显而易见的,在那里没有什么特别的。然后,他们testInstanceMethod()从引用调用myCat,因此很明显,然后执行的方法是的实例中的方法Cat。

从我的角度来看,呼叫隐藏的行为就像覆盖一样,那么为什么要区分它呢?如果我使用上面的类运行此代码:

Cat.testClassMethod();

我会得到: Cat中的class方法。 但是,如果我testClassMethod()从Cat中删除,则将得到: Animal中的类方法。

这说明在子类中编写具有与父代相同的签名的静态方法几乎可以重写。

希望我能弄清楚我的困惑之处,并且有人可以阐明。首先十分感谢!

hiding java_Overriding vs Hiding Java - Confused相关推荐

  1. 基于可逆神经网络的图像隐藏技术 (ICCV 2021) - HiNet: Deep Image Hiding by Invertible Network

    HiNet: Deep Image Hiding by Invertible Network [pdf] [github] Figure 1. The illustration of differen ...

  2. java编程应该要的英语_java编程中常用英语单词

    JAVA 省略语与名词解释 -------------------------------- J2EETM----JavaTM 2PlatformEnterpriseEdition : J2EE(JA ...

  3. Java基础常见英语词汇

    "ctrl+F"输入关键字来查找 第一章: JDK(Java Development Kit) java开发工具包 JVM(Java Virtual Machine) java虚拟 ...

  4. Java英语单词(5000个)

    Java基础常见英语词汇 OO:  面向对象 OOP: object-oriented programming,面向对象编程 JDK:Java development kit, java开发工具包 J ...

  5. Java中常见的单词

    abstract (关键字)             抽象 ['.bstr.kt]  access                            vt.访问,存取 ['.kses]'(n.入口 ...

  6. java必备英语单词

    abstract (关键字) 抽象 ['.bstr.kt] access vt.访问,存取 ['.kses]'(n.入口,使用权) algorithm n.算法 ['.lg.riem] annotat ...

  7. java中一些常用的英语

     abstract (关键字  ) 抽象  ['.bstr.kt]  access vt.访问,存取  ['.kses]'(n.入口,使用权)  algorithm n.算法  ['.lg.rie ...

  8. Java必背基础词汇

    一.常用关键字53个 1.保留关键字(2个) const --常量,常数:用于修改字段或局部变量的声明. goto--转到:指定跳转到标签,找到标签后,程序将处理从下一行开始的命令 2.访问修饰符的关 ...

  9. java常用英语单词

    abstract (关键字) 抽象 ['.bstr.kt] access vt.访问,存取 ['.kses]'(n.入口,使用权) algorithm n.算法 ['.lg.riem] annotat ...

最新文章

  1. js基础面试高频面点1:变量提升
  2. 开源项目PullToRefresh详解(一)——PullToRefreshListView
  3. 春节将至 香港推广“绿色年宵”呼吁惜物减废
  4. 2016 校园招聘求职经历(二)
  5. PHP SEVER预定义变量
  6. CSS 属性篇(七):Display属性
  7. Java集合 -- HashSet 和 HashMap
  8. partproble在RHEL 6下无法更新分区信息
  9. Flash 环境 全屏效果
  10. python小程序设计4s店_python自写的车牌识别小程序,完全自主实现。图片处理
  11. wps如何设置文字环绕图片
  12. 零基础爱好者如何入门音乐制作/自学音乐制作导航
  13. Android 反编译代码,资源修改,重新签名
  14. latex附录中放python代码_LaTeX 里「添加程序代码」的完美解决方案
  15. [逆向破解]lua脚本解密
  16. vss服务器状态失败_Exchange快照错误,询问写入器状态失败
  17. 计算机视觉之混合图像(Hybrid)
  18. 事务前沿研究 | 隔离级别的追溯与究明,带你读懂 TiDB 的隔离级别(上篇)
  19. Android图片加载框架最全解析(八),带你全面了解Glide 4的用法
  20. 计算机网络原理(谢希仁第八版)第三章课后习题答案

热门文章

  1. 人生的路,每一步都算数
  2. KMP模式匹配算法详解
  3. Java中类和对象的概念
  4. 最新水利水电安全员考试多选题库(2)
  5. 【并行算法】问题的基本求解过程和并行计算机模型
  6. 【51nod】【单调栈】扔盘子
  7. 国内手机号码归属地查询---Nusoap学习笔记(三)
  8. 使用openvpn docker及frp docker工具构建虚拟专业网络(V-P-N)
  9. java中Scanner使用方法详细
  10. 菲波那切数列(递归非递归)