public class Solution { public static void main(String[] args) { List<Apartment> apartments = new ArrayList<Apartment>(); apartments.add(new OneRoomApt()); apartments.add(new TwoRoomApt()); apartments.add(new ThreeRoomApt()); cleanAllApartments(apartments); } public static void cleanAllApartments(List<Apartment> apartments) { //написать тут вашу реализацию пунктов 1-4 for (Apartment mainAp : apartments) { if (mainAp.getClass().getSimpleName().equals("OneRoomApt")) { ((OneRoomApt)mainAp).clean1Room(); } if (mainAp.getClass().getSimpleName().equals("TwoRoomApt")) { ((TwoRoomApt)mainAp).clean2Rooms(); } if (mainAp.getClass().getSimpleName().equals("ThreeRoomApt")) { ((ThreeRoomApt)mainAp).clean3Rooms(); } } } static interface Apartment { } static class OneRoomApt implements Apartment { void clean1Room() { System.out.println("1 room is cleaned"); } } static class TwoRoomApt implements Apartment { void clean2Rooms() { System.out.println("2 rooms are cleaned"); } } static class ThreeRoomApt implements Apartment { void clean3Rooms() { System.out.println("3 rooms are cleaned"); } } }