前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >动态绑定和静态绑定

动态绑定和静态绑定

作者头像
PhoenixZheng
发布2018-08-07 16:32:36
1.7K0
发布2018-08-07 16:32:36
举报

Java的动态/静态绑定是比较偏门的知识点之一,可能你不经常听到,但是关于他们的应用,有Java开发经验的朋友应该看一眼就明白。

静态绑定

先说静态绑定。所谓静态绑定,既是说方法的实现在编译期就已经确定了的。这么一说,马上能想到的就是静态方法。 没错,只有静态方法是属于静态绑定,或者称之为前期绑定。而对象方法则是在运行期绑定的。

动态绑定

对于动态绑定,或者叫运行期绑定,说的是在编译期不知道实现的是哪个具体的对象,直到运行期才能确定。 让我们来举个例子。

代码语言:javascript
复制
class Drinks{
  public void drink(){
    System.out.println("not sure what it is");
  }

  public static void main(String []args){
    Drinks drink = DrinkFactory.getDrink();
    drink.drink();
  }
}

class DrinkFactory {
  public static Drinks getDrink() {
    return new Tea();
  }
}

class Tea extends Drinks{
//overriding the static method
  public void drink(){
    System.out.println("this is Tea");
  }
}

class Water extends Drinks{
//overriding the static method
  public void drink(){
    System.out.println("this is Water");
  }
}

非常简单的一个例子,用的是我们经常见到的工厂模式,具体的实现类型可以在DrinkFactory工厂类中根据运行时的情况再确定。 而在编译期时是不知道的。可以用这个例子来理解动态绑定的意义所在。

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

本文分享自 Android每日一讲 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 静态绑定
  • 动态绑定
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档