# 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!
댓글 영역