美文网首页Java基础
Java基础-多态

Java基础-多态

作者: 其实是白羊 | 来源:发表于2019-06-03 11:11 被阅读0次

    一、实质(比较官方的回答)

    多态是指:当系统A访问系统B的服务时,系统B可以通过多种实现方式来提供服务,而这一切对于系统A而言是透明的。

    二、举例理解

    父类:动物类;子类:猫类和狗类;父类的方法cries()被两个子类重写。

    现在有一个功能要实现发出某种动物的叫声,动物有很多种,我们只需要要这样写:

    public void animalCries(动物 a){
      a.cries()
    }
    

    在需要动物发声的时候直接调用:

    动物 a=new 猫();
    animalCries(a);
    
    动物 b=new 狗();
    animalCries(b);
    

    就能不用改动原始代码。编译时变量a就被认定为代码中所声明的动物对象,程序在执行的过程中会看动物a这个变量引用的到底是猫对象还是狗对象。动态绑定。

    一些需要知道的知识点

    1.向上转型:声明的变量类型是父类,变量引用的对象是子类。(看上去是爸爸,仔细一看是儿子)
    2.对于引用对象而言,Java编译器会按照它声明时的类型来能处理,运行时Java虚拟机会按照它实际引用的对象来处理。
    3.在运行环境中,引用类型里的方法和成员变量的绑定是有规则的:

    • 动态绑定:实例方法的绑定(实际看变量引用的对象的类型)
    • 静态绑定:静态方法和成员变量(实际看变量声明时的类型)

    相关文章

      网友评论

        本文标题:Java基础-多态

        本文链接:https://www.haomeiwen.com/subject/yinqxctx.html