public class Solution {
    public static void main(String[] args) {


        Hen hen = HenFactory.getHen(Country.BELARUS);
        hen.getCountOfEggsPerMonth();
    }


static class HenFactory implements Country {

        static Hen getHen(String country) {

            Hen hen = null;


            switch (country) {
                case Country.BELARUS: hen = new BelarusianHen();
                break;
            }

     return hen;
        }
    }
interface Country {
    String UKRAINE = "Ukraine";
    String RUSSIA  = "Russia";
    String MOLDOVA = "Moldova";
    String BELARUS = "Belarus";
}
public abstract class Hen{
    public abstract int getCountOfEggsPerMonth();
    public   String getDescription(){
        return "Я - курица.";
    }}

class BelarusianHen extends Hen{


    public int getCountOfEggsPerMonth() {
        return 2;
    }
    @Override
    public  String getDescription(){
    String.format("%s Моя страна - %s. Я несу %s яиц в месяц.", super.getDescription(), Country.RUSSIA, this.getCountOfEggsPerMonth());
    }
}

}