向上转型:对象既可以作为它自己本身的类型使用,也可以作为基类型使用。把某个对象的引用视为对其基类型的引用的做法就叫做向上转型。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

方法绑定:将一个方法调用同一个方法主体关联起来。若在程序执行前进行绑定,叫做前期绑定。若在运行时根据对象的类型进行绑定叫做后期绑定(动态绑定或运行期绑定)。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);
        }
}