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

2019年1月3日 星期四

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

1. 为什么要用多态?

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

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

1.3 多态具有横向扩展特性

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

2.不一样的多态案例

2.1 UML静态模型图

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

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

1package com.wuji.duotai; 2 3public interface Tooth { 4 void yao(); 5}

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

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

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

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

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

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

2.6 场景使用类代码如下:

1import com.wuji.duotai.JiuChi; 2import com.wuji.duotai.MenChi; 3import com.wuji.duotai.QuanChi; 4import com.wuji.duotai.Tooth; 5 6public class Client { 7 public static void main(String[] args) { 8 9 //吃水果 10 eat(new MenChi()); 11 //吃肉 12 eat(new QuanChi()); 13 eat(new JiuChi()); 14 } 15 16 private static void eat(Tooth tooth){ 17 tooth.yao(); 18 } 19}

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

点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java面试(1)

1.面向对象的基本特征  封装、继承、多态、  封装:把客观事物封装成类  继承:继承一个类,就可以使用这个类的所有功能,并且在无需编写原来类的情况下对这些功能进行扩展  多态:子对象调用父对象,父对象会根据当前调用的子对象以不同的方式运作  实现多态:覆盖,重载2.final\\finally\\finalize的区别  fin

C++虚函数详解:多态性实现原理及其在面向对象编程中的应用

在面向对象的编程中,多态性是一个非常重要的概念。多态性意味着在不同的上下文中使用同一对象时,可以产生不同的行为。C是一种面向对象的编程语言,在C中,虚函数是实现多态性的关键什么是虚函数虚函数是一个在基类中声明的函数,它可以被子类重写并提供不同的实现

Java多态实现原理

Java多态概述多态是面向对象编程语言的重要特性,它允许基类的指针或引用指向派生类的对象,而在具体访问时实现方法的动态绑定。Java对于方法调用动态绑定的实现主要依赖于方法表,但通过类引用调用(invokevirtual)和接口引用调用(invokeinterface)的实现则有所不同。类引用调用的大致过程为:Java编译器将Java源代码编译成c

20175212童皓桢 Java实验二

20175212童皓桢Java实验二面向对象程序设计实验报告实验内容初步掌握单元测试和TDD理解并掌握面向对象三要素:封装、继承、多态初步掌握UML建模熟悉S.O.L.I.D原则了解设计模式实验步骤

20175212童皓桢 Java实验二

20175212童皓桢Java实验二面向对象程序设计实验报告实验内容初步掌握单元测试和TDD理解并掌握面向对象三要素:封装、继承、多态初步掌握UML建模熟悉S.O.L.I.D原则了解设计模式实验步骤