Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package WildFarm;
- public abstract class Food {
- private Integer quantity;
- public Food(Integer quantity) {
- this.quantity = quantity;
- }
- public Integer getQuantity() {
- return quantity;
- }
- }
- public class Vegetable extends Food {
- public Vegetable(Integer quantity) {
- super(quantity);
- }
- }
- public class Meat extends Food {
- public Meat(Integer quantity) {
- super(quantity);
- }
- }
- public abstract class Animal {
- protected String animalName;
- protected String animalType;
- protected double animalWeight;
- protected Integer foodEaten;
- public Animal(String animalName, String animalType, double animalWeight) {
- this.animalName = animalName;
- this.animalType = animalType;
- this.animalWeight = animalWeight;
- this.foodEaten=0;
- }
- public abstract void makeSound();
- public abstract void eat(Food food);
- }
- public abstract class Mammal extends Animal{
- protected String livingRegion;
- public Mammal(String animalName, String animalType, double animalWeight,String livingRegion) {
- super(animalName, animalType, animalWeight);
- this.livingRegion=livingRegion;
- }
- @Override
- public String toString() {
- DecimalFormat df=new DecimalFormat("#.#");
- return String.format("%s[%s, %s, %s, %d]",animalType,animalName,df.format(animalWeight),this.livingRegion,this.foodEaten);
- }
- }
- public class Mouse extends Mammal {
- public Mouse(String animalName, String animalType, double animalWeight, String livingRegion) {
- super(animalName, animalType, animalWeight, livingRegion);
- }
- @Override
- public void makeSound() {
- System.out.println("SQUEEEAAAK!");
- }
- @Override
- public void eat(Food food) {
- if (food instanceof Vegetable){
- foodEaten+=food.getQuantity();
- }else{
- System.out.println("Mouses are not eating that type of food!");
- }
- }
- }
- public class Zebra extends Mammal {
- public Zebra(String animalName, String animalType, double animalWeight, String livingRegion) {
- super(animalName, animalType, animalWeight, livingRegion);
- }
- @Override
- public void makeSound() {
- System.out.println("Zs");
- }
- @Override
- public void eat(Food food) {
- if (food instanceof Vegetable){
- foodEaten+=food.getQuantity();
- }else{
- System.out.println("Zebras are not eating that type of food!");
- }
- }
- }
- public class Cat extends Felime {
- private String breed;
- public Cat(String animalName, String animalType, double animalWeight, String livingRegion,String breed) {
- super(animalName, animalType, animalWeight, livingRegion);
- this.breed=breed;
- }
- @Override
- public String toString() {
- DecimalFormat df=new DecimalFormat("#.#");
- return String.format("%s[%s, %s, %s, %s, %d]",this.animalType,this.animalName,this.breed,df.format(this.animalWeight),this.livingRegion,this.foodEaten);
- }
- @Override
- public void makeSound() {
- System.out.println("Meowwww");
- }
- @Override
- public void eat(Food food) {
- this.foodEaten+=food.getQuantity();
- }
- }
- public class Tiger extends Felime {
- public Tiger(String animalName, String animalType, double animalWeight, String livingRegion) {
- super(animalName, animalType, animalWeight, livingRegion);
- }
- @Override
- public void makeSound() {
- System.out.println("ROAAR!!!");
- }
- @Override
- public void eat(Food food) {
- if (food instanceof Meat){
- foodEaten+=food.getQuantity();
- }else{
- System.out.println("Tigers are not eating that type of food!");
- }
- }
- }
- //--------------------------------------------------------------------------------------------------------------
- public class Main {
- public static void main(String[] args) {
- Scanner sc=new Scanner(System.in);
- String strInput="";
- while(!(strInput=sc.nextLine()).equals("End")){
- String[] details=strInput.split("\\s+");
- //{AnimalType} {AnimalName} {AnimalWeight} {AnimalLivingRegion} [{CatBreed} = Only if its cat]
- //FoodType ; quantity
- String animalType=details[0];
- String animalName=details[1];
- double animalWeight=Double.parseDouble(details[2]);
- String livingRegion=details[3];
- String breed=animalType.equals("Cat") ? details[4] : "";
- Animal animal=null;
- switch (animalType){
- case "Mouse":
- animal=new Mouse(animalName,animalType,animalWeight,livingRegion);
- break;
- case "Zebra":
- animal=new Zebra(animalName,animalType,animalWeight,livingRegion);
- break;
- case "Cat":
- animal=new Cat(animalName,animalType,animalWeight,livingRegion,breed);
- break;
- case "Tiger":
- animal=new Tiger(animalName,animalType,animalWeight,livingRegion);
- break;
- }
- String[] foodDetails=sc.nextLine().split("\\s+");
- String foodType=foodDetails[0];
- int quantity=Integer.parseInt(foodDetails[1]);
- Food food=foodType.equals("Vegetable") ? new Vegetable(quantity) : new Meat(quantity);
- animal.makeSound();
- animal.eat(food);
- System.out.println(animal.toString());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement