在静态绑定中,绑定可以在运行时或编译时解析。所有static,final和private方法的绑定过程都在编译时完成。
在Java中重写可以被认为是动态绑定的最佳示例,因为父类和子类具有相同的方法 - 也就是说,它不决定要调用的方法。
static,final和private方法的绑定始终是静态绑定,因为静态绑定提供了更好的性能,并且它们无法被覆盖,因此将始终由某个本地类的对象访问。
以下是静态绑定的示例:
public class NewClass
{
public static class superclass
{
static void print()
{
System.out.println("print in superclass.");
}
}
public static class subclass extends superclass
{
static void print()
{
System.out.println("print in subclass.");
}
}
public static void main(String[] args)
{
superclass A = new superclass();
superclass B = new subclass();
A.print();
B.print();
}
}
输出: 以超类打印。 以超类打印。
在上面的示例中,两种情况都给出了相同的结果:
以下是动态绑定的示例:
public class NewClass
{
public static class superclass
{
void print()
{
System.out.println("print in superclass.");
}
}
public static class subclass extends superclass
{
@Override
void print()
{
System.out.println("print in subclass.");
}
}
public static void main(String[] args)
{
superclass A = new superclass();
superclass B = new subclass();
A.print();
B.print();
}
}
输出: 以超类打印。 在子类中打印。
输出不同,因为:
在这里,我们将讨论与Java中的静态和动态绑定相关的一些重要问题:
所以,这完全是关于Java中的静态绑定与动态绑定。希望你喜欢我们的解释。