gpt4 book ai didi

java - 继承:运算符的实例混淆

转载 作者:行者123 更新时间:2023-11-29 06:34:48 24 4
gpt4 key购买 nike

考虑下面的代码:

class B
{
int j =100;
}

class A extends B
{
int i=10;
}

public class Test
{
public static void main(String[] args)
{
A obj =new A();
System.out.println(obj);
B obj1 =obj;

System.out.println(obj1); // here i am confused

if( obj1 instanceof A )
{
System.out.println("yes"); //here i am confused
}
}
}

这里的输出是:

A@35186a
A@35186a
yes

现在 obj1 是父类(super class) B 的一个实例,那么为什么 toString() 显示它是 A 的对象?另外,instanceof 运算符如何显示它是类 A 的实例?

最佳答案

您必须区分引用 和实际对象

B obj1 = obj;

在这里,您创建了一个名为 obj1B 类型的新引用。引用的对象仍然是 A 对象,但永远无法更改。

关于java - 继承:运算符的实例混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23040661/

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