public Class Fruits{}
public Class Apple extends Fruits{}
public Class RedApple extends Fruits{}
Apple apple = new Apple();
//向上转-OK
Fruits fruits = (Fruits)apple;
//向下转-Wrong,因为苹果不一定就是红苹果.
RedApple redApple = (RedApple)apple;
//-------------------------------分割线---------------
RedApple redApple1 = new RedApple();
//向上转-OK, 苹果是水果
Fruits fruits = (Fruits)redApple1;
//向下转-OK, 由于上面的水果之前是红苹果, 那么将水果强转为红苹果也就没有问题了.
RedApple redApple2 = (RedApple)fruits;