Π·Π°Π΄Π°Ρ‡Ρƒ я Ρ€Π΅ΡˆΠΈΠ». Π½ΠΎ ΠΏΠΎΡ‚ΠΎΠΌ вспомнил Π·Π°Π΄Π°Ρ‡Ρƒ ΠΏΡ€ΠΎ мост Π² этом ΠΆΠ΅ Π±Π»ΠΎΠΊΠ΅, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ суТСниС Ρ‚ΠΈΠΏΠ° ΠΈ компилятор сам ΠΏΠΎΠ½ΠΈΠΌΠ°Π» , ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΈΠ· классов Π΅ΠΌΡƒ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ. Ρ‚Π°ΠΊ ΠΏΡ€ΠΎΡ‡Π΅ΠΌΡƒ ΠΆΠ΅ здСсь Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ явноС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ°, Π° Ρ‚Π°ΠΌ Π½Π΅ Π½Π°Π΄ΠΎ. ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠ²ΠΎΠΆΡƒ частично, Ρ‚.ΠΊ. Π·Π°Π΄Π°Ρ‡Π° Ρ€Π΅ΡˆΠ΅Π½Π° ΠΈ ΡƒΠΆΠ΅ Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ эта Π·Π°Π΄Π°Ρ‡Π°: public static void printMainInfo(Object object) { //Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ‚ΡƒΡ‚ ваш ΠΊΠΎΠ΄ if(object instanceof Movable) ((Movable)object).move(); if(object instanceof Drawable) ((Drawable)object).draw(); } static interface Movable { void move(); } static interface Drawable { void draw(); } Π·Π°Π΄Π°Ρ‡Π° ΠΏΡ€ΠΎ мосты: public class Solution { public static void main(String[] args) { println(new WaterBridge()); println(new SuspensionBridge()); } public static void println(Bridge bridge) { System.out.println(bridge.getCarsCount()); } }