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()
*/