• Java多态与动态绑定


    1.多态

       一个实例变量可以引用多种不同类的实例的现象称为多态,这些类之间是父类与子类的关系,即父类引用可以指向子类的对象,这样参数是父类类型的方法也可以用来处理子类。

    2.动态绑定

       父类有多个子类,且多个子类都继承了父类中某个方法并以不同实现重写了。由于多态,父类引用可能指向的是子类对象,在使用父类引用调用该方法时,虚拟机可以在运行时决定调用对象的实际类型中的实现,即所谓的动态绑定。

    3.静态绑定

      静态绑定即在编译时根据引用声明的类型来决定调用哪个实现,调用private方法、final方法以及static方法时就是采用静态绑定,访问类的属性时也采用静态绑定。

    class Parent
     {
       public int value = 9;
       
       public int method()
       {
          return value;
       }
        
       public void printValue()
       {
           System.out.println(value);          //静态绑定,隐式参数this的声明类型是Parent,因此访问的是父类中的value
           System.out.println(method());       //动态绑定,隐式参数this传递进来的实际类型是Child,因此调用的是子类中的method
       }
     }
     
     class Child extends Parent
     {
       public int value = 8;
        
       public int method()
       {
          value--;
          return value;
       }
     }
     
     public class Test extends Parent
     {
        public static void main(String[] args)
        {
            Parent child = new Child();
            child.printValue();
        }
     }

    参考资料 《Java核心技术》

  • 相关阅读:
    ADO中的多层次数据集,类似于dataset
    工作流的设计
    Socket bind系统调用简要分析
    linux Network Address Translation NAT 转载 还需要整理
    生活20190602
    磁盘空间满的问题
    linux netfilter nat 实现 转载
    Socket 套接字的系统调用
    linux 网络编程 基础
    学习linux,不要找别人了,我有东西要发
  • 原文地址:https://www.cnblogs.com/jqctop1/p/4664896.html
Copyright © 2020-2023  润新知