java中复写方法和同名变量的调用问题

来源:互联网 发布:电梯广告盈利 知乎 编辑:程序博客网 时间:2024/05/21 10:36
 子类对象调用上转对象调用复写方法中调用继承方法中调用复写方法(方法存在复写)YYYY同名变量(成员变量只是被隐藏)YNYN
  1. 方法可以被复写,没有this、super引用下,总是调用复写方法;
  2. 变量不存在复写,父类变量只是被隐藏了,没有this、super引用下,继承方法、上转对象调用隐藏变量;子类对象、复写方法调用同名变量;
  3. 根本原因是由于java的绑定:
    1. 静态绑定:依据静态类型(外观类型),例如:
      1. 编译期,依据参数静态类型(静态分派),进行方法重载;
      2. 字段调用,依据所有者静态类型;
      3. 非虚方法:static静态方法、private私有方法、实例构造器、父类方法、final方法
    2. 动态绑定:依据实际类型,例如:
      1.  方法的复写(动态分派),依据方法的所有者(接收者)的实际类型;
阅读全文
0 0
原创粉丝点击