向上转型:对象既可以作为它自己本身的类型使用,也可以作为基类型使用。把某个对象的引用视为对其基类型的引用的做法就叫做向上转型。
 
方法绑定:将一个方法调用同一个方法主体关联起来。若在程序执行前进行绑定,叫做前期绑定。若在运行时根据对象的类型进行绑定叫做后期绑定(动态绑定或运行期绑定)。Java中除了static方法和final方法(private方法属于final方法)之外,其他所有的方法都是后期绑定。
 
成员变量是在对象初始化(new)时由编译器分配在堆内存中的,静态方法是与类相关联的,它们都不与单个对象相关联。因此都不具有多态性。
 
多态3条件:1.继承;2.重写;3.父类引用指向子类对象。
 
例子:
 
/**
 * Title:Cycle.java
 * Description:演示多态
 *
 * @author winwin
 * @version 1.0
 * @since 2009-4-9上午10:16:48
 */
public class Cycle {
    public void ride(){
       System.out.println("ride");
    }
}
 
public class Unicycle extends Cycle {
    @Override
    public void ride(){
       System.out.println("ride unicycle!");
    }
}
 
public class Bicycle extends Cycle {
    @Override
    public void ride(){
       System.out.println("ride bicycle!");
    }
}
 
public class Tricycle extends Cycle {
    @Override
    public void ride(){
       System.out.println("ride tricycle!");
    }
}
 
public class TestRide {
 
    public void rideCycle(Cycle cycle){
       cycle.ride();
    }
    public static void main(String[] args) {
       Unicycle uc = new Unicycle();
       Bicycle bc = new Bicycle();
       Tricycle tc = new Tricycle();
      
       TestRide tr = new TestRide();
      
       //父类引用指向子类对象,rideCycle的参数为父类引用,uc,bc,tc为子类对象。
       tr.rideCycle(uc);
       tr.rideCycle(bc);
       tr.rideCycle(tc);
    }
}