方法和调用绑定
绑定
将一个方法调用同一个方法主体关联起来被称作绑定。
前期绑定
若在程序执行前进行绑定(如果有的话,由编译器和连接程序实现),叫做连接绑定。
后期绑定
又称动态绑定或运行时绑定,在运行时根据对象的类型进行绑定。
如果一种语言想实现后期绑定,就必须具有某种机制,以便在运行时能判断对象的类型,从而调用恰当的方法。也就是说,编译器一直不知道对象的类型,但是方法调用机制能找到正确的方法体,并加以调用。后期绑定机制随编程语言的不同而有所不同。
Java中除了static方法和final方法(private方法属于final方法)之外,其他所有的方法都是后期绑定。除此之外,域也不是后期绑定。
示例
基类
public class Insect {
public int i = 0;
public Insect(){
}
public void print(){
System.out.println("Insert");
}
public static void printStatic(){
System.out.println("static:Insert");
}
}
导出类
public class Beetle extends Insect{
public int i = 1;
public Beetle(){
}
public void print(){
System.out.println("Bettle");
}
public static void printStatic(){
System.out.println("static:Bettle");
}
}
main函数
public static void main(String[] args){
Insect insect = new Insect();
Insect beetle = new Beetle();
insect.printStatic();
beetle.printStatic();
System.out.println(insect.i);
System.out.println(beetle.i);
}
输出
static:Insert
static:Insert
0
0
Last updated