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);

      }

    }

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

    来看我们的内存的图:

     

     

     

     

  • 相关阅读:
    POJ 3041 Asteroids 最小点覆盖 == 二分图的最大匹配
    POJ 3083 Children of the Candy Corn bfs和dfs
    POJ 2049 Finding Nemo bfs 建图很难。。
    POJ 2513 Colored Sticks 字典树、并查集、欧拉通路
    POJ 1013 Counterfeit Dollar 集合上的位运算
    POJ 2965 The Pilots Brothers' refrigerator 位运算枚举
    无聊拿socket写的100以内的加法考试。。。
    POJ 1753 Flip Game
    初学socket,c语言写的简单局域网聊天
    汇编语言 复习 第十一章 标志寄存器
  • 原文地址:https://www.cnblogs.com/white-the-Alan/p/10183008.html
Copyright © 2011-2022 走看看