1 class Mammal {} 2 class Dog extends Mammal {} 3 class Cat extends Mammal {} 4 5 public class ClassCast { 6 public static void main (String[] args) { 7 Mammal m = (Math.random()<0.5)?new Mammal():new Dog(); 8 Dog spot = new Dog(); 9 Cat felix = new Cat(); 10 11 m = spot; m = felix; // Valid 12 spot = m; // Compile-time error 13 spot = (Dog) m; // Valid at compile time; runtime check 14 felix = (Cat) m; // Valid at compile time; runtime check 15 felix = spot; // Compile-time error 16 felix = (Cat) spot; // Compile-time error 17 } 18 }