zoukankan      html  css  js  c++  java
  • 046_面向对象_19_内存分析

    一、关于多态的演示示例

      

    package edu.aeon.test;
    /**
     * [说明]:动物类
     * @author aeon
     *
     */
    public class Animal {
        String str;
    
        public void voice() {
            System.out.println("普通动物叫声!");
        }
    }
    
    class Cat extends Animal {
        public void voice() {
            System.out.println("喵喵喵");
        }
    
        public void catchMouse() {
            System.out.println("抓老鼠");
        }
    }
    
    class Dog extends Animal {
        public void voice() {
            System.out.println("汪汪汪");
        }
    
        public void seeDoor() {
            System.out.println("看门!");
        }
    }
    
    class Tiger extends Animal {
        public void voice() {
            System.out.println("哇哇哇");
        }
    
    }
    
    class Pig extends Animal {
        public void voice() {
            System.out.println("哼哼哼");
        }
    }
    package edu.aeon.test;
    /**
     * [说明]:测试多态
     * @author aeon
     *
     */
    public class Test {
        public static void testAnimalVoice(Animal c) {
            c.voice();
            if (c instanceof Cat) {
                ((Cat) c).catchMouse();
            }
        }
    
        public static void main(String[] args) {
            Animal a = new Cat();
            Cat a2 = (Cat) a;
            testAnimalVoice(a);
        }
    }

    该示例在内存中的结构图如下:

      

    运行结果截图:

      

    如有任何疑问可联系邮箱: 给我发邮件、或直接联系QQ:1584875179 || 点返回首页

  • 相关阅读:
    第十一章关联容器
    第十章泛型算法
    第九章
    第八章
    阅读记录
    java.lang.Class阅读笔记
    java.time包阅读笔记
    CLion运行多个main函数
    c++中lower_bound和upper_bound中的comp参数
    如何写dfs
  • 原文地址:https://www.cnblogs.com/aeon/p/9976945.html
Copyright © 2011-2022 走看看