国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java的前期綁定和后期綁定使用示例

2019-11-26 15:43:09
字體:
來源:轉載
供稿:網友

后期綁定,是指在運行時根據對象的類型進行綁定,又叫動態綁定或運行時綁定。實現后期綁定,需要某種機制支持,以便在運行時能判斷對象的類型,調用開銷比前期綁定大。
Java中的static方法和final方法屬于前期綁定,子類無法重寫final方法,成員變量(包括靜態及非靜態)也屬于前期綁定。除了static方法和final方法(private屬于final方法)之外的其他方法屬于后期綁定,運行時能判斷對象的類型進行綁定。驗證程序如下:

復制代碼 代碼如下:

class Base
{
    //成員變量,子類也有同樣的成員變量名
    public String test="Base Field";
    //靜態方法,子類也有同樣簽名的靜態方法
    public static void staticMethod()
    {
        System.out.println("Base staticMethod()");
    }
    //子類將對此方法進行覆蓋
    public void notStaticMethod()
    {
        System.out.println("Base notStaticMethod()");
    }

}
public class Derive extends Base
{
    public String test="Derive Field";
    public static void staticMethod()
    {
        System.out.println("Derive staticMethod()");
    }
    @Override
    public void notStaticMethod()
    {
        System.out.println("Derive notStaticMethod()");
    }
    //輸出成員變量的值,驗證其為前期綁定。
    public static void testFieldBind(Base base)
    {
        System.out.println(base.test);
    }
    //靜態方法,驗證其為前期綁定。
    public static void testStaticMethodBind(Base base)
    {
        //The static method test() from the type Base should be accessed in a static way
        //使用Base.test()更加合理,這里為了更為直觀的展示前期綁定才使用這種表示。
        base.staticMethod();
    }
    //調用非靜態方法,驗證其為后期綁定。
    public static void testNotStaticMethodBind(Base base)
    {
        base.notStaticMethod();
    }
    public static void main(String[] args)
    {
        Derive d=new Derive();
        testFieldBind(d);
        testStaticMethodBind(d);
        testNotStaticMethodBind(d);
    }
}
/*程序輸出:
Base Field
Base staticMethod()
Derive notStaticMethod()
 */

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 岑巩县| 武乡县| 虹口区| 炉霍县| 昌吉市| 江华| 托克逊县| 普兰县| 徐汇区| 荆门市| 晴隆县| 田阳县| 柳江县| 沐川县| 平乐县| 东乡县| 竹溪县| 建德市| 洛隆县| 靖远县| 烟台市| 吴旗县| 许昌县| 得荣县| 亚东县| 合水县| 内丘县| 丽水市| 安义县| 册亨县| 原阳县| 韶关市| 广东省| 静乐县| 南溪县| 张家港市| 资兴市| 翁牛特旗| 淮阳县| 香格里拉县| 温州市|