练习17:使用练习1中的Cycle的层次结构,在Unicycle和Bicycle中添加balance()方法,而Tricycle中不添加。创建所有这三种类型的实例,并将它们向上转型为Cycle数组。在该数组的每一个元素上都尝试调用balance(),并观察结果。然后将它们向下转型,再次调用balance(),并观察将所产生什么。
public class MainTest {
public static void main(String args[]){
Cycle[] cycle={new Unicycle(),new Bicycle(),new Tricycle()};
Unicycle u=(Unicycle)cycle[0];
u.balance();
}
/**
* 输出:Unicycle---balance()
*
*/
public static void p(String str){};
}
class Cycle{
}
class Unicycle extends Cycle{
public void balance(){
System.out.println(this.getClass().getName()+"---balance()");
}
}
class Bicycle extends Cycle{
public void balance(){
System.out.println(this.getClass().getName()+"---balance()");
}
}
class Tricycle extends Cycle{
}