程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java的後期綁定和前期綁定應用示例

java的後期綁定和前期綁定應用示例

編輯:關於JAVA

java的後期綁定和前期綁定應用示例。本站提示廣大學習愛好者:(java的後期綁定和前期綁定應用示例)文章只能為提供參考,不一定能成為您想要的結果。以下是java的後期綁定和前期綁定應用示例正文


前期綁定,是指在運轉時依據對象的類型停止綁定,又叫靜態綁定或運轉時綁定。完成前期綁定,須要某種機制支撐,以便在運轉時能斷定對象的類型,挪用開支比後期綁定年夜。
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()
 */

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved