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) {
if(o instanceof Cat){
System.out.print("Кошка");
if (o instanceof Bird){
System.out.print("Птица");
if (o instanceof Lamp){
System.out.print("Лампа");
if (o instanceof Dog){
System.out.print("Собака");
}
}
}
}
}
public static class Cat {
}
public static class Dog {
}
public static class Bird {
}
public static class Lamp {
}
}
при таком раскладе выдает на консоль "КошкаКошка"
если меняю метод на
public static void printlnObjectType(Object o) {
//Напишите тут ваше решение
if (o instanceof Cat) {
System.out.println("Кошка");
}
if (o instanceof Bird) {
System.out.println("Птица");
}
if (o instanceof Lamp) {
System.out.println("Лампа");
}
if (o instanceof Dog) {
System.out.println("Собака");
}
}
выводит правильно. что не устраивает в первом варианте?
if(Логическое выражение 1) {
//Выполняется, если логическое выражение 1 истинно
if(Логическое выражение 2) {
//Выполняется, если логическое выражение 2 истинно
}
}
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) {
if(o instanceof Cat){
System.out.print("Кошка");
if (o instanceof Bird){
System.out.print("Птица");
if (o instanceof Lamp){
System.out.print("Лампа");
if (o instanceof Dog){
System.out.print("Собака");
}
}
}
}
}
public static class Cat {
}
public static class Dog {
}
public static class Bird {
}
public static class Lamp {
}
}