gpt4 book ai didi

java - 在Java中将一个对象的引用分配给另一个对象?

转载 作者:行者123 更新时间:2023-12-01 09:29:17 25 4
gpt4 key购买 nike

我看到了很多关于对象引用的问题,并且部分理解了它们是如何工作的。但我仍然对它们有一些疑问。

首先,这句话中的所有词语是什么意思?

Box b = new Box();

我知道 new Box() 会导致创建一个对象并返回对该对象的引用。如果我没记错的话,该引用将存储在 b 中。那么最初的 Box 是用来做什么的?根据我读到的内容,它是定义 Box 的类。但我不确定。这引出了我的下一个问题。

我试图理解我尝试过的声明中的第一个术语的含义:

class LOL
{
public static void main(String args[])
{
Box b=new Box();
Cup c=new Cup();
Box f=new Cup(); //*****
f.daa(); //Prints Box.daa
f.display(); //Prints Cup.display
f.disp(); //ERROR!
}
}
class Box
{
void display()
{
System.out.println("Box.display");
}
void daa()
{
System.out.println("Box.daa");
}
}
class Cup extends Box
{
void display()
{
System.out.println("Cup.display");
}
void disp()
{
System.out.println("Cup.disp");
}
}

那么这是怎么回事呢? ***** 行实际上是做什么的?创建的对象是 Cup 类型(我认为),那么为什么它不能调用 f.disp() 呢?我无法理解这个问题。

最佳答案

Box f = new Cup();创建一个新的 Cup 并将其存储在变量 f 中类型 Box 。下面的代码显示f类型为Box并如此对待它。如Box没有名为 disp() 的方法你无法执行f.disp() .

您必须更改 Box f...Cup f...或将 f 强制转换为 Cup在调用disp()之前.

关于java - 在Java中将一个对象的引用分配给另一个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39579899/

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