手机
当前位置:查字典教程网 >编程开发 >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()

*/

【java的前期绑定和后期绑定使用示例】相关文章:

java定时调度器(Quartz)使用实例

java多线程编程之join方法的使用示例

java中final关键字使用示例详解

Java对象初始化顺序的使用

java数组输出的实例代码

java枚举的使用示例

java的基本数据类型及属性

java N皇后实现问题解析

java基本教程之synchronized关键字 java多线程教程

java多线程和并发包入门示例

精品推荐
分类导航