gpt4 book ai didi

java - 如何根据对象的实例进行重载?

转载 作者:行者123 更新时间:2023-12-02 04:15:21 27 4
gpt4 key购买 nike

我被指示创建两个互相重载的方法。一个应该将对象存储在一个数组中,另一个应该将对象存储在另一个数组中。作业内容如下:

重做您的动物园,使其能够分别存放野生动物和家养动物。因此,您的 Zoo 类将可能/大概有两个不同的 add() 方法。一个接收实现野生动物接口(interface)的 Animal 对象,另一个接收实现家养动物接口(interface)的 Animal 对象的 add() 方法。

我该怎么做?

Class Zoo {
...
void add(Animal foobar instanceof Wild){
[...]
}
[...]

不会编译。也没有

Class Zoo {
...
void add(Animal foobar implements Wild){
[...]
}
[...]

实际上,可以使用instanceof在add()中执行if语句,但他特别要求两个互相重载的add()方法。我该怎么做呢?或者,这是不可能的吗?我的老师试图用“可能/大概”来扰乱我?

最佳答案

关键是提供两个 add() 方法,一个采用一种类型的参数(野生动物 动物类型),另一个采用另一种类型的参数参数(家养动物类型)。

您现在应该有足够的信息来编写此代码。

附录 (2016 年 3 月)

例如,您可以使用以下代码:

class Animal { ... }

interface Wildlife { ... }
interface Domestic { ... }

class WildAnimal
extends Animal
implements Wildlife
{ ... }

class DomesticAnimal
extends Animal
implements Domestic
{ ... }

class Zoo
{
void add(WildAnimal beast) { ... }
void add(DomesticAnimal beast) { ... }
}

两个 Zoo.add() 方法都接受 Animal 类型的参数。但一个接受一个实现了 Wildlife 接口(interface)的 Animal 对象,另一个接受实现 Domestic 接口(interface)的 Animal 对象。

关于java - 如何根据对象的实例进行重载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33375637/

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