如何重载依赖于对象的实例



我被指示创建两个相互重载的方法。一个应该在一个数组中存储对象,另一个应该在另一个数组中存储对象。赋值为:

重做你的动物园,使它有能力分别储存野生动物和家畜。因此,您的Zoo类可能/大概有两个不同的add()方法。一个接收实现野生动物接口的Animal-对象,另一个接收实现家畜接口的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接口的Animal对象,另一个接受实现Domestic接口的Animal对象

最新更新