dog a=new dog();
animal a2=a;
与
dog a=(dog)new animal();
不一样.一个是向上自动转型
一个是向下强制转型
上面的是把一个dog对象转换成Animal对象,下面的是把Animal对象强制转换成dog对象。animal包含dog,dog转成animal是没有问题的,但是animal转换成dog就存在溢出问题(即只有dog能够转换成功,其余cat等不能)
不一样
或者不要(dog)