静态绑定与动态绑定

绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。对java来说,绑定分为静态绑定和动态绑定;或者叫做前期绑定和后期绑定.

区别

1.静态绑定发生在编译时期,动态绑定发生在运行时

2.变量都使用静态绑定,使用private或static或final修饰的变量或者方法,使用静态绑定。而虚方法(可以被子类重写的方法)则会根据运行时的对象进行动态绑定。

3.重载(Overload)的方法使用静态绑定完成,而重写(Override)的方法则使用动态绑定完成。

实例:

public class father {
	public String name ="father";	
	public void  say(){
		System.out.println("father");
	}
}
public class son extends father {
	public String name ="son";
	public void say(){
		System.out.println("son");
	} 
}

测试:

public static void main(String[] args) {
		father f2 = new son();
		System.out.println(f2.name);
		f2.say();
}

输出:

father

son

可见,变量是静态绑定,方法是动态绑定。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值