关于多态和抽象类的一个形象小例子
2016-05-16 20:12
239 查看
额,今天突然灵光一现,想到一个很好解释面向对象里多态与抽象类的小例子。不知是否恰当,欢迎大牛指教。
一天,一个人吃着一个苹果对你说:“他正在吃水果。”你可能一点儿也不觉得奇怪。因为苹果的确就是一种水果,他的话没有逻辑错误。这就是面向对象的多态的一个表现,可以用父类来表示子类。
但有一天,这个人吃着一个不明物体,你问他:“hey,哥们,吃的啥呢?”于是他又回答你:“我吃的水果呢。”你又问:“这啥水果啊,我咋没见过。”他回答说:“这不是啥水果,这就是水果啊。”你肯定会觉得这人有毛病吧。没错,“水果”就是一个抽象类。你不能说自己吃的水果就是“水果”。抽象类是不能被实例化的。
一天,一个人吃着一个苹果对你说:“他正在吃水果。”你可能一点儿也不觉得奇怪。因为苹果的确就是一种水果,他的话没有逻辑错误。这就是面向对象的多态的一个表现,可以用父类来表示子类。
但有一天,这个人吃着一个不明物体,你问他:“hey,哥们,吃的啥呢?”于是他又回答你:“我吃的水果呢。”你又问:“这啥水果啊,我咋没见过。”他回答说:“这不是啥水果,这就是水果啊。”你肯定会觉得这人有毛病吧。没错,“水果”就是一个抽象类。你不能说自己吃的水果就是“水果”。抽象类是不能被实例化的。
相关文章推荐
- 第10、11周项目1-点-圆-圆柱类族的设计(2)
- Deep Learning(深度学习)学习笔记整理系列之(四)
- JavaScript学习日志——流程控制
- 还是畅通工程
- 指针指向数组并指定数组首地址的一种方法
- css 元素选择器实例
- 你在某某项目中写了/自动化了几个测试用例?
- 寻找发帖水王01
- [PWA] 7. First Cache when installed
- C语言双向循环链表实现
- HDU 4455 Substring(DP)
- java 学习曲线(Java学习书籍推荐)
- 图像处理的一个简化的磨皮算法
- Deep Learning(深度学习)学习笔记整理系列之(三)
- KeepUpdating
- Android多进程
- MySQL数据检索+查询+全文本搜索
- descendantFocusability属性用法简析
- hiho一下 第九十八周题目1 : 搜索一·24点
- 【连载】关系型数据库是如何工作的?(16) - 查询管理器之Merge Join