package test;
public class TestUpcasting {
public static void tune(Cycle i){
i.play(Note.MEDIUM);
}
public static void main(String[] args) {
tune(new UnCycle());
}
}
enum Note{
SMALL,MEDIUM,LARGE;
}
class Cycle{
public void play(Note n){
System.out.println("Cycle");
}
}
class UnCycle extends Cycle{
// public void play(Note n){
// System.out.println("UnCycle");
// }
}
class BiCycle extends Cycle{
public void play(Note n){
System.out.println("BiCycle");
}
}
class TriCycle extends Cycle{
public void play(Note n){
System.out.println("TriCycle");
}
}
**************************************************************
只写一个简单方法,它仅接收基类作为参数,而不是那些特殊的导出类。不关注导出类是否存在,编写的代码只与基类打交道。印证了多态性。