Java面向对象之多态(来源于身边的案例)
程序员文章站
2022-07-10 22:05:39
这个案例网上是没有的,属于无忌独创,当时在帮孩子辅导作业,小学科学,里面有一点内容是关于人的牙齿,说牙齿分为:门齿、犬齿、臼齿,问闺女,为什么这么分呢?闺女说牙齿虽然都是用来咬食物,但是食物种类很多,咬碎需要的工具也不一样,门齿用来切割食物,如:苹果、梨;犬齿用来撕碎食物,如肉类;臼齿用来磨碎食物,... ......
2019年1月3日 星期四
java面向对象之多态(来源于身边的案例)
1. 为什么要用多态?
1.1 多态是面向对象的三大特性之一
1.2 多态是基于接口设计的模型
1.3 多态具有横向扩展特性
1.4 可以非常标准匹配“依赖倒置原则”,降低前端与后端间的耦合
2.不一样的多态案例
2.1 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面向对象里的多态吗?多完美啊。。。这也很好说明了为什么会有多态出现。。。因为生活中就存在太多这种例子,所以需要多态来匹配解决
上一篇: js中两个日期大小比较,获取当前日期,日期加减一天
下一篇: 对象导论系列---被隐藏的具体实现