zoukankan      html  css  js  c++  java
  • 静态绑定(前期绑定) 与 动态绑定(后期绑定)

    绑定

      绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来,绑定分为静态绑定(前期绑定) 和 动态绑定(后期绑定)


    静态绑定(前期绑定)

      静态绑定指的是在程序执行前就已经被绑定(编译过程就确定调用方法所属类)。
    注意:Java中,只有final、static、private 和 构造方法 是静态绑定

    • final : final修饰的方法可以被子类继承,但是不能被重写。子类也不能增加一个和父类final修饰一样的方法(编译会报错)。所以子类虽然可以调用该final修饰的方法,但其实调用的也是父类定义的final方法。因此使用final修饰的方法可以有效地关闭java的动态绑定
    • static:static修饰的方法可以被继承,但是不能被重写。虽然子类可以新建一个和父类定义为static方法一摸一样的方法。但是使用起来会有区别,子类对象上转型为父类对象时,不论子类有没有定义那个static方法,该对象调用的都是父类的静态方法。所以static修饰的方法在编译时就可以确定调用方法属于哪个类,也就是可以进行静态绑定
    • private:private修饰的方法不能被继承,既然不能被子类进行操作,想调用这个private方法,只能通过这个类自身的对象,所以private修饰的方法在编译时就可以进行静态绑定
    • 构造方法:这个就不解释了,构造方法是每个类独有的方法,所以肯定编译的时候就可以进行静态绑定

    动态绑定(后期绑定)

      动态绑定指定的是在运行时再决定这个方法由哪个对象调,这个过程就被成为动态绑定
    动态绑定的过程:

    • JVM寻找对象实际类型的方法表
    • JVM搜索方法签名
    • 调用方法

    参考链接:

  • 相关阅读:
    nyoj 230/poj 2513 彩色棒 并查集+字典树+欧拉回路
    nyoj 211 Cow Contest
    nyoj 203 三国志 dijkstra+01背包
    nyoj 170 网络的可靠性
    nyoj 120 校园网络
    nyoj 115 城市平乱 dijkstra最短路
    nyoj 42 一笔画问题 欧拉路径
    nyoj 38 布线问题
    hdu 2089 不要62--数位dp入门
    nyoj 712 探 寻 宝 藏--最小费用最大流
  • 原文地址:https://www.cnblogs.com/liujunj/p/13381658.html
Copyright © 2011-2022 走看看