zoukankan      html  css  js  c++  java
  • 动态绑定多态

    动态绑定也指多态:是指在执行期间(而非编译期间)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法,

    下面的例子是根据Lady对象的成员变量pet所引用的不同的是积累形成而调用相应的enjoy方法

     

    多态:要有继承;要有重写;父类引用指向子类对象

     

    当这三个对象都被满足的时候调用父类里面被重写的方法,实级当中new 的是哪一个子类对象就调用哪一个子类的方法

    class Aniaml {

      public String name;

      Animal (String name) {

      this.name = name;

      public void enjoy(){
        System.out.println("叫声......");
        }

      }

    }

     

    class Cat extends Animal {

      private String eyeColor;

      Cat(String n,String f) {

        super(n);

        this.eyeColor = eyeColor;

      }

      public void enjoy() {

        System.out.println("猫叫声......");

      }

    }

     

    class Bird extends Animal {

      private String featherColor;

      Bird(String n,String f) {

        super(n);

        featherColor = f;

      }

      public void enjoy() {

        System.out.println("鸟叫声.....");

       }

    }

     

    class Lady {

      private String name;

      private Animal pet;

      Lady(String name,Animal pet) {

        this.name = name;

        this.pet = pet;

      }

      public void myEnjoy(){

        pet.enjoy();

      }

    }

     

    public class Test {

      public static void main(String args[]) {

        //Lady l3 = new Lady("l3",new Bird("birthname","green"));

        Cat c = new Cat("catname","blue");

        Bird d = new Bird("dogname","black");

        Lady l1 = new Lady("l1",c);

        Lady l2 = new Lady("l2",d);

      }

    }

    如果按道理来说他应该打印叫声...,但是事实上他打印的是,猫叫声.....和狗叫声...... ,这也就牵扯到我们 的动态绑定也称多态。

    来看我们的内存的图:

     

     

     

     

  • 相关阅读:
    ccs元素分类 gcelaor
    webkit Safari的样式库
    “Zhuang.Data”轻型数据库访问框架(二)框架的入口DbAccessor对象
    “Zhuang.Data”轻型数据库访问框架(一)开篇介绍
    一个基于Dapper的DbContext封装
    打造比Dictionary还要快2倍以上的字查找类
    .Net core 的热插拔机制的深入探索,以及卸载问题求救指南.
    字符串类型的自动转换与识别
    最近发现的.net core中的一些bugs
    从项目经理的角度看.net的MVC中Razor语法真的很垃圾.
  • 原文地址:https://www.cnblogs.com/white-the-Alan/p/10183008.html
Copyright © 2011-2022 走看看