1、Public abstract class Animal{
public abstract Animal breed();
}
2、public class Fox extends Animal{
@Override
public Animal breed() {
Animal ret = null;
if ( isBreedable() && Math.random() < 0.5) {
ret = new Fox();
}
return ret;
}
}
3、public class Rabbit extends Animal{
@Override
public Animal breed() {
Animal ret = null;
if ( isBreedable()&& Math.random() < 0.12) {
ret = new Rabbit();
}
return ret;
}
4、问题:Fox.breed()和Rabbit.breed()几乎一样,
有什么好办法修改?注意Fox和Rabbit的breed()返回的具体类型不同。