zoukankan      html  css  js  c++  java
  • 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核心技术》

  • 相关阅读:
    Java_适配器模式
    linux常用命令整理
    (转)使用隐藏的iframe 隐藏form提交,仿AJax无刷新提交,可以实现无刷新上传文件
    mysql添加并返回主键
    学习RMI
    关于bcprov-jdk16
    JavaScript在页面中的引用方法
    通过CFX发布WebService(一)
    字符串和json数据的转换
    MD5 加密与解密
  • 原文地址:https://www.cnblogs.com/jqctop1/p/4664896.html
Copyright © 2011-2022 走看看