从父级调用toString()子方法

时间:2018-10-18 06:06:00

标签: java inheritance override multiple-inheritance

我知道我可以从父实例调用子方法,但是我需要从父实例调用toString()子方法,我只是不知道如何确定。

例如:

class Animal {

// Some code

}

class Chicken extend Animal{

String toString(){

return "I'm a Chicken";
}
}

class Duck extend Animal{

String toString(){

return "I'm a Duck";
}
}

我知道我可以像Animal cat = new Cat()这样称呼孩子

但是我的问题是我的发起人依赖于另一个发起人,例如:

class Farm{

    private Animal animal;

    public Farm(Animal animal){
    this.animal = animal;
    }
    }

因此,当我需要调用 Farm.class 的子类 ChickenFarm()时,我需要从Chicken.claas获取方法,而不是* Animal.class `。

有什么我想念的方式吗?


更新:

我不需要对客户端做出很多选择,我的意思是说,*Farm.class类很多。

因此,客户端将仅使用类型为Farm.class的{​​{1}}进行呼叫,如何根据类型确定要使用哪个孩子,或者例如(enum)之类的内容团队[Type.ChickenChickenFarm.class]。

1 个答案:

答案 0 :(得分:0)

我建议使用动物应实现的方法来定义接口 IAnimal

然后:

动物类实现了IAnimal

类Farm实现了IAnimal

然后,Animal和Farm(以及ChickenFarm)的所有子类都必须实现aninmals方法。

相关问题