Aşağıdaki kodu inceleyiniz:
public abstract class Animal {...}
public class Human extends Animal implements Omnivore {...}
public class Deer extends Animal implements Herbivore {...}
public class Lion extends Animal implements Carnivore {...}
public class App {
public static void main(String [ ] args) {
Human human1 = new Human();
Deer deer1 = new Deer();
Lion lion1 = new Lion();
FeedingEngine feedingEngine = new FeedingEngine();
feedingEngine.feedWithPlant(deer1);
feedingEngine.feedWithFish(human1);
feedingEngine.feedWithPlant(human1);
feedingEngine.feedWithFish(lion1);
}
}
Yukarıda verilen sınıfların detayları verilmemiştir. Ayrıca uygulamada var olduğu anlaşılan 3 adet interface ve FeedingService sınıfı da gösterilmemiştir. main() metodundaki kullanımı inceleyerek aşağıdaki soruları yanıtlayınız.
- Herbivore, Carnivore ve Omnivore interfacelerinin hiyerarşisi nasıl olabilir? Neden?
- feedWithPlant ve feedWithFish metodlarının parametreleri neler olabilir?
- Animal sınıfı neden abstract yapılmış olabilir?