gpt4 book ai didi

java - java中的继承——我无法理解的东西

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:27:32 26 4
gpt4 key购买 nike

我对 Java 中的继承有疑问,但我无法理解:

我有这两个类:

public class C
{
public void foo(D d)
{
System.out.println("cd");
}
}

public class D extends C
{
public void foo(C c)
{
System.out.println("dc");
}

public void foo(D d)
{
System.out.println("dd");
}
}

主要内容:

public static void main(String[] args)
{
C cd = new D();
D dd = (D)cd;
}

cddd 分别是什么类型,为什么?

最佳答案

这里涉及两种不同的类型:

  1. 变量的类型;
  2. 变量引用的对象的类型。

变量的类型独立于它当前引用的对象的类型——反之亦然,对象的类型不依赖于访问它的变量的类型。因此,当您将一个对象分配给另一个不同的变量时,它的类型不会受到影响。

所以,

  • 变量 cd 的类型是C;
  • 它引用的对象的类型是D

关于java - java中的继承——我无法理解的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20036108/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com