• Java面向对象之多态(来源于身边的案例)


    201913 星期四

    Java面向对象之多态(来源于身边的案例)

    1. 为什么要用多态?

    1.1 多态是面向对象的三大特性之一

    1.2 多态是基于接口设计的模型

    1.3 多态具有横向扩展特性

    1.4 可以非常标准匹配“依赖倒置原则”,降低前端与后端间的耦合

    2.不一样的多态案例

    2.1 UML静态模型图

     备注:想学UML建模的可以看这篇

    2.2 牙齿多态接口,代码如下:

    package com.wuji.duotai;
    
    public interface Tooth {
        void yao();
    }

    2.3 门齿多态实现,代码如下:

    package com.wuji.duotai;
    
    public class MenChi implements Tooth {
        @Override
        public void yao() {
            System.out.println("门齿用来切割食物如水果类");
        }
    }

    2.4 犬齿多态实现,代码如下:

    package com.wuji.duotai;
    
    public class QuanChi implements Tooth {
        @Override
        public void yao() {
            System.out.println("犬齿用来撕碎食物如肉类");
        }
    }

    2.5 臼齿多态实现,代码如下:

    package com.wuji.duotai;
    
    public class JiuChi implements Tooth {
        @Override
        public void yao() {
            System.out.println("臼齿用来磨碎食物,如肉类经犬齿撕碎后");
        }
    }

    2.6 场景使用类代码如下:

    import com.wuji.duotai.JiuChi;
    import com.wuji.duotai.MenChi;
    import com.wuji.duotai.QuanChi;
    import com.wuji.duotai.Tooth;
    
    public class Client {
        public static void main(String[] args) {
    
            //吃水果
            eat(new MenChi());
            //吃肉
            eat(new QuanChi());
            eat(new JiuChi());
        }
    
        private static void eat(Tooth tooth){
            tooth.yao();
        }
    }

    3.总结:这个案例网上是没有的,属于无忌独创,当时在帮孩子辅导作业,小学科学,里面有一点内容是关于人的牙齿,说牙齿分为:门齿、犬齿、臼齿,问闺女,为什么这么分呢?闺女说牙齿虽然都是用来咬食物,但是食物种类很多,咬碎需要的工具也不一样,门齿用来切割食物,如:苹果、梨;犬齿用来撕碎食物,如肉类;臼齿用来磨碎食物,如犬齿撕碎的肉类,就需要再用臼齿来磨碎,然后送到食道,胃,小肠,大肠进行消化。我恍然大悟,这不就是Java面向对象里的多态吗?多完美啊。。。这也很好说明了为什么会有多态出现。。。因为生活中就存在太多这种例子,所以需要多态来匹配解决

  • 相关阅读:
    k8s 部署springcloud
    Actuator 端点监控
    [转]再识Cortex-M3之堆栈
    ARM中R0-R15寄存器的作用
    Keil中 Program Size: Code RO-data RW-data ZI-data
    【浅说】堆(heap)和栈(stack)区别
    I2C的小结
    一个判断I2C总线通信异常原因的方法
    Linux输入子系统详解
    【转】完整精确导入Kernel与Uboot参与编译了的代码到Source Insight,Understand, SlickEdit
  • 原文地址:https://www.cnblogs.com/javajiuyangzhenjing/p/10216339.html
Copyright © 2020-2023  润新知