java 編程思想筆記之多態

向上轉型:對象既可以作爲它自己本身的類型使用,也可以作爲基類型使用。把某個對象的引用視爲對其基類型的引用的做法就叫做向上轉型。

 

方法綁定:將一個方法調用同一個方法主體關聯起來。若在程序執行前進行綁定,叫做前期綁定。若在運行時根據對象的類型進行綁定叫做後期綁定(動態綁定或運行期綁定)。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);

    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章