상세 컨텐츠

본문 제목

instanceof

Java

by techbard 2016. 7. 13. 19:02

본문

반응형



# Animal.java


public class Animal {


    private String name;


    public Animal(String name) {

this.name = name;

    }


    public String getName() {

return name;

    }


    public String say() {

return "unknown";

    }

}



# Dog.java


public class Dog extends Animal {


    public Dog(String name) {

super(name);

    }


    @Override

    public String say() {

return "waf! waf!";

    }

}



# Main.java


public class Main {


    public static void main(String[] args) {

Animal dog = new Dog("fido");

showAnimalType(dog);

    }

    

    private static void showAnimalType(Animal a) {

Class theClass = a.getClass();

String className = theClass.getSimpleName();

Class parentClass = theClass.getSuperclass();

String parentClassName = parentClass.getSimpleName();

System.out.println("Class name is " + className);

System.out.println("Parent class name is " + parentClassName);

if (a instanceof Animal) {

   System.out.println("It's an Animal");

}

if (a instanceof Dog) {

   System.out.println("It's a Dog");

}

System.out.println("This animal says: " + a.say());

    }

}



# 결과


Class name is Dog

Parent class name is Animal

It's an Animal

It's a Dog

This animal says: waf! waf!


반응형

관련글 더보기

댓글 영역