2019年1月3日 星期四

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 {@Overridepublic void yao() {System.out.println("门齿用来切割食物如水果类");}
}

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

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

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

package com.wuji.duotai;public class JiuChi implements Tooth {@Overridepublic 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面向对象里的多态吗?多完美啊。。。这也很好说明了为什么会有多态出现。。。因为生活中就存在太多这种例子,所以需要多态来匹配解决

转载于:https://www.cnblogs.com/javajiuyangzhenjing/p/10216339.html

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

  1. 12 Java面向对象之多态

    JavaSE 基础之十二 12 Java面向对象之多态 ① 多态的概念及分类 多态的概念:对象的多种表现形式和能力 多态的分类 1. 静态多态:在编译期间,程序就能决定调用哪个方法.方法的重载就表现出 ...

  2. Java 面向对象:多态的理解

    Java 面向对象:多态的理解 一.多态的定义 一个对象的实际类型是确定的,但可以指向引用对象的类型可以有很多(父类,有关系的类) 操作符的多态 +可以作为算数运算,也可以作为字符串连接 类的多态 父 ...

  3. Java面向对象:多态——基于继承的向上转型、方法重写、动态绑定

    Java面向对象:多态 1.多态的概念 2.向上转型和向下转型 (1)向上转型 (2)向下转型 3.方法重写 4.动态绑定与静态绑定 5.多态的优缺点 ======================== ...

  4. python面向对象三大特性_Python面向对象之多态原理与用法案例分析

    本文实例讲述了Python面向对象之多态原理与用法.分享给大家供大家参考,具体如下: 目标 多态 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 定义类的准则 继承 ...

  5. python中的多态用法_Python面向对象之多态原理与用法案例分析

    本文实例讲述了Python面向对象之多态原理与用法.分享给大家供大家参考,具体如下: 目标 多态 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 定义类的准则 继承 ...

  6. 面向小姐姐的编程——JAVA面向对象之多态

    多态概述 什么是多态? 多种状态,同一对象在不同情况下表现出不同的状态或行为 比如你女朋友,会有多种表情,多种姿态,多种情绪,这都是多态. Java中实现多态的步骤 要有继承(或实现)关系 要有方法重 ...

  7. 新手小白学JAVA 面向对象之多态

    多态 1. 概念 多态是面向对象程序设计(OOP)的一个重要特征,指同一个实体同时具有多种形式,即同一个对象,在不同时刻,代表的对象不一样,指的是对象的多种形态. 可以把不同的子类对象都当作父类来看, ...

  8. java面向对象的多态_java面向对象(五)之多态

    多态 面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. ...

  9. day11 Java 面向对象 final 多态

    文章目录 一.final 关键字 二.多态 (polymorphic) 1.基本 2.多态访问成员特点 3.向上转型和向下转型 3.instanceof 关键字 4.多态访问成员特点 五.练习 总结 ...

最新文章

  1. 【机器学习实战】第12章 使用 FP-growth 算法来高效发现频繁项集
  2. Java-ThreadLocal三种使用场景
  3. CentOS 8 利用yum源安装nginx
  4. 富学金融穷学IT,分析互联网的新财富密码
  5. unity 烘焙参数 设置_Unity通用渲染管线(URP)系列(九)——点光源和聚光灯
  6. mysql主从复制实践之单数据库多实例
  7. BootStrap笔记-表格方面的配置
  8. (王道408考研操作系统)第四章文件管理-第一节2:文件的逻辑结构
  9. FTP的主、被动模式
  10. B00005 函数atoi()(去空格,带符号)
  11. html5 java 微信商城_微信商城和H5商城区别是什么?
  12. C语言error2005,关于ERROR LNK 2005错误
  13. c#调用新浪微博开放平台接口
  14. Lambert (兰伯特)光照模型
  15. C语言约分-化为最简分数
  16. 使用Python发送邮件(QQ邮箱为例)
  17. NRF51822裸机TIMER学习笔记
  18. 计算机在企业生产中的应用外文,计算机制造外文文献翻译
  19. 基于SSH的羽毛球场地预定系统毕业设计-运动场地预定系统 源码 java-体育馆预定场地管理系统-场馆预约系统
  20. ”我的2016“-太多难忘的第一次

热门文章

  1. 更改ubuntu root密码
  2. 国内外常用NTP公共时间同步服务器
  3. qt界面最大化-实现在软件所在的显示器最大化和还原窗口大小
  4. MSI: 基于多元同步索引的SSVEP频率识别算法
  5. 关于RikiRobot ROS机器人的介绍
  6. Java核心密卷知识点新整理1---4章节
  7. java中的synthetic
  8. 测开:前端基础-html
  9. Spring | IOC技术之Bean的配置与实例化
  10. 剑网三三测服务器维护,郭炜炜深夜两点回应谣言,剑网3凌晨紧急维护:优化精力系统...