eatがDogにしかないんじゃないか
Dog d = (Dog)a;
d.eat();
とダウンキャストしている思えばいい