не понимаю почему в случае Swich он идет по всем case? а не только по тому который нужен? а как правельно было бы написать swich (o instedOf) ??? что потом в Case писать?
package com.javarush.task.task12.task1204;
/*
То ли птица, то ли лампа
*/
public class Solution {
public static void main(String[] args) {
printObjectType(new Cat());
printObjectType(new Bird());
printObjectType(new Lamp());
printObjectType(new Cat());
printObjectType(new Dog());
}
public static void printObjectType(Object o) {
// System.out.println(o.getClass().getName());
switch (o.getClass().getSimpleName()) {
case "Cat":
System.out.println("Кошка");
case "Dog":
System.out.println("Собака");
case "Lamp":
System.out.println("Лампа");
case "Bird":
System.out.println("Птица");
}
// if (o.getClass().getName().contains("Cat")){
// System.out.println("Кошка");
// }
// if (o instanceof Cat){
// System.out.println("Кошка");
// } else if (o instanceof Bird){
// System.out.println("Птица");
// }else if (o instanceof Lamp){
// System.out.println("Лампа");
// }else if (o instanceof Dog){
// System.out.println("Собака");
// }
}
public static class Cat {
}
public static class Dog {
}
public static class Bird {
}
public static class Lamp {
}
}