java編程思想之多態

在面對對象的程序設計語言中,多態是繼數據抽象和繼承之後的第三種基本特性。下面我們直接看例子來說明什麼是多態。

public class  Wind extends Instrument {
    public void play(Note n){
        System.out.print("Instrument play");
    }
}
public class Instrument {
    public void play(Note n){
        System.out.print("Instrument play");
    }
}
public class  Wind extends Instrument {
    public void play(Note n){
        System.out.print("Wind play");
    }
}
public class Music {
    public static void tune(Instrument i){
        i.play(Note.MIDDLE_C);
    }
    public static void main(String[] args){
        Wind wind = new Wind();
        tune(wind);
    }
}
輸出的結果:Wind play

上面的例子是多態向上轉型的一個典型示例。Music類中的tune方法接受所有Instrument類的對象,包括其子類對象,子類中複寫類父類中的方法,故調用的是子類中的play();

這裏設計到一個後期綁定或者說是動態綁定,意思是在運行期根據對象的類型進行綁定。java中除了static方法和final方法之外,其他的所有的方法都是後期綁定。

                    敬請關注下期內容java編程思想之接口

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