前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java中的静态绑定与动态绑定的区别,讲明白了

Java中的静态绑定与动态绑定的区别,讲明白了

作者头像
用户1289394
发布2019-03-08 16:34:27
1.8K0
发布2019-03-08 16:34:27
举报
文章被收录于专栏:Java学习网Java学习网

Java中的静态绑定

在静态绑定中,绑定可以在运行时或编译时解析。所有static,final和private方法的绑定过程都在编译时完成。

Java中的动态绑定

在Java中重写可以被认为是动态绑定的最佳示例,因为父类和子类具有相同的方法 - 也就是说,它不决定要调用的方法。

什么是Java中的静态绑定?

static,final和private方法的绑定始终是静态绑定,因为静态绑定提供了更好的性能,并且它们无法被覆盖,因此将始终由某个本地类的对象访问。

以下是静态绑定的示例:

代码语言:javascript
复制
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();
}
}

输出: 以超类打印。 以超类打印。

在上面的示例中,两种情况都给出了相同的结果:

  • 子类和超类的引用是相同的,即单个对象。
  • 因为它不能在子类中重写,即超类和编译器,所以它知道并且没有歧义。

什么是Java中的动态绑定?

以下是动态绑定的示例:

代码语言:javascript
复制
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();
}
}

输出: 以超类打印。 在子类中打印。

输出不同,因为:

  • 这里的方法不是静态的。
  • 在绑定中,编译器不知道必须调用哪个print,因为编译器只是通过引用变量而不是通过对象的类型,并且沿着这些行,绑定将被推迟到运行时,这样将调用print的比较适配鉴于对问题的一种排序。

静态绑定的基本要点。动态绑定

在这里,我们将讨论与Java中的静态和动态绑定相关的一些重要问题:

  • 私有,最后和静态个体利用静态权威,而虚拟技术则限制在运行时期间根据运行时对象完成。
  • Java中的静态绑定使用官方类型数据,而Java限制中的动态绑定使用对象来确定绑定。
  • 使用静态绑定来解决重载方法,同时使用动态绑定(即在运行时)重写方法。

所以,这完全是关于Java中的静态绑定与动态绑定。希望你喜欢我们的解释。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Java中的静态绑定
  • Java中的动态绑定
  • 什么是Java中的静态绑定?
  • 什么是Java中的动态绑定?
  • 静态绑定的基本要点。动态绑定
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档