• 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面向对象里的多态吗?多完美啊。。。这也很好说明了为什么会有多态出现。。。因为生活中就存在太多这种例子,所以需要多态来匹配解决

  • 相关阅读:
    Android开发之Path类使用详解,自绘各种各样的图形!
    json数值和结构
    ajax异步请求不能刷新数据的问题
    关于javaBean中boolean类型变量的set和get注入后传到前端JS中的问题
    Js中的window.parent ,window.top,window.self详解
    db2中修改表字段的长度,查看表字段长度,以及查看表字段已存放值大小
    db2数据库中查找数据库表
    分页查询SQL
    ibatis动态语句加and 和不加and
    win7计划任务执行BAT文件问题
  • 原文地址:https://www.cnblogs.com/javajiuyangzhenjing/p/10216339.html
Copyright © 2020-2023  润新知