Java后期绑定
2014-10-31 16:48
183 查看
该绑定方法是多太实现的关键,java中除了static和final(private方法属于final方法)之外,其它所有的方法都是后期绑定,将方法声明为final就是为了防止其他人覆盖该方法,更重要的是:这样做能有效的“关闭”动态绑定。比如下面的实例
(1):会输出father,因为没有动态绑定
public
class Father {
protected static void
print() {
System.out.println("Father");
}
}
public
class Child2
extends
Father {
protectedstaticvoid
print() {
System.out.println("Child");
}
publicstatic
voidprint2(Father f) {
f.print();
}
publicstaticvoid
main(String[] args) {
Father f =
new
Child2();
print2(f);
}
}
(2)普通的方法形式,输出child,因为没有定义为static
public
class Father {
protectedvoidprint()
{
System.out.println("Father");
}
}
public
class Child2
extends
Father {
protectedvoidprint()
{
System.out.println("Child");
}
publicstatic
voidprint2(Father f) {
f.print();
}
publicstaticvoid
main(String[] args) {
Father f =
new
Child2();
print2(f);
}
}
(1):会输出father,因为没有动态绑定
public
class Father {
protected static void
print() {
System.out.println("Father");
}
}
public
class Child2
extends
Father {
protectedstaticvoid
print() {
System.out.println("Child");
}
publicstatic
voidprint2(Father f) {
f.print();
}
publicstaticvoid
main(String[] args) {
Father f =
new
Child2();
print2(f);
}
}
(2)普通的方法形式,输出child,因为没有定义为static
public
class Father {
protectedvoidprint()
{
System.out.println("Father");
}
}
public
class Child2
extends
Father {
protectedvoidprint()
{
System.out.println("Child");
}
publicstatic
voidprint2(Father f) {
f.print();
}
publicstaticvoid
main(String[] args) {
Father f =
new
Child2();
print2(f);
}
}
相关文章推荐
- Java动态(后期)绑定和overloading 向上转型
- JAVA 后期绑定
- Java的前期绑定和后期绑定[新]
- Java动态(后期)绑定和overloading 向上转型
- java后期绑定(动态绑定)
- CORBA对象生命周期之早期和后期绑定-Java基础-Java-编程开发
- Java的前期绑定和后期绑定[新]
- Java中前期绑定和后期绑定的一些经典例子
- java中的前期绑定和后期绑定
- Java前期(静态)绑定和后期(动态)绑定
- java的前期绑定和后期绑定
- Java动态(后期)绑定和overloading 向上转型
- java学习之编译时类型(前期绑定)和运行时类型 (后期绑定、动态绑定、运行时绑定)
- java的前期绑定和后期绑定使用示例
- java 的前期绑定和后期绑定
- [34]java中方法调用为后期绑定
- [Think in java] 前期绑定和后期绑定(转)
- Java动态(后期)绑定和overloading 向上转型
- Java之前期绑定,后期绑定,简单理解和实例
- Java前期(静态)绑定和后期(动态)绑定