次のJavaクラスを検討してください。
public class Animal {
public static void printText(Object obj) {
System.out.println(obj.toString());
}
}
class Tiger extends Animal {
// Contains some unimportant methods.
}
そして今、mainメソッドに以下を入力すると、そのキャストでエラーが発生しても、コンパイラーはエラーを出しません。なんで?
public static void main(String[] args) {
Animal animal = new Animal();
((Tiger)animal).printText(animal); // <= ?? no error in the compiler ??
}